History

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

Need MST sideband message transaction to power up/down nodes.

Jani Nikula committed 9 years ago

Commit 32f35b82 parents ae7617f 754270c11337 files · +581402 −302532Browse files

Unified · Split

3772 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 +38 −5
  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/megachips-stdpxxxx-ge-b850v3-fw.txt +0 −1
  130. Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt +1 −1
  131. Documentation/devicetree/bindings/display/faraday,tve200.txt +54 −0
  132. Documentation/devicetree/bindings/display/fsl,tcon.txt +0 −1
  133. Documentation/devicetree/bindings/display/imx/fsl-imx-drm.txt +1 −1
  134. Documentation/devicetree/bindings/display/marvell,pxa2xx-lcdc.txt +0 −1
  135. Documentation/devicetree/bindings/display/panel/innolux,p079zca.txt +0 −1
  136. Documentation/devicetree/bindings/display/panel/orisetech,otm8009a.txt +21 −0
  137. Documentation/devicetree/bindings/display/panel/samsung,s6e63j0x03.txt +24 −0
  138. Documentation/devicetree/bindings/display/panel/seiko,43wvf1g.txt +23 −0
  139. Documentation/devicetree/bindings/display/renesas,du.txt +30 −21
  140. Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt +0 −1
  141. Documentation/devicetree/bindings/display/rockchip/dw_hdmi-rockchip.txt +0 −1
  142. Documentation/devicetree/bindings/display/rockchip/dw_mipi_dsi_rockchip.txt +0 −2
  143. Documentation/devicetree/bindings/display/rockchip/inno_hdmi-rockchip.txt +0 −1
  144. Documentation/devicetree/bindings/display/rockchip/rockchip-lvds.txt +99 −0
  145. Documentation/devicetree/bindings/display/simple-framebuffer-sunxi.txt +0 −1
  146. Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +0 −1
  147. Documentation/devicetree/bindings/dma/fsl-edma.txt +0 −1
  148. Documentation/devicetree/bindings/dma/mv-xor.txt +0 −1
  149. Documentation/devicetree/bindings/dma/qcom_adm.txt +0 −1
  150. Documentation/devicetree/bindings/dma/renesas,rcar-dmac.txt +1 −0
  151. Documentation/devicetree/bindings/dma/renesas,usb-dmac.txt +1 −0
  152. Documentation/devicetree/bindings/dma/snps-dma.txt +0 −1
  153. Documentation/devicetree/bindings/dma/st_fdma.txt +0 −1
  154. Documentation/devicetree/bindings/dma/ste-dma40.txt +0 −1
  155. Documentation/devicetree/bindings/dma/sun4i-dma.txt +0 −1
  156. Documentation/devicetree/bindings/dma/sun6i-dma.txt +1 −0
  157. Documentation/devicetree/bindings/dma/ti-dma-crossbar.txt +0 −1
  158. Documentation/devicetree/bindings/dma/ti-edma.txt +90 −6
  159. Documentation/devicetree/bindings/eeprom/eeprom.txt +5 −1
  160. Documentation/devicetree/bindings/extcon/extcon-usbc-cros-ec.txt +24 −0
  161. Documentation/devicetree/bindings/fpga/altera-passive-serial.txt +29 −0
  162. Documentation/devicetree/bindings/fpga/xilinx-pr-decoupler.txt +36 −0
  163. Documentation/devicetree/bindings/fpga/xilinx-slave-serial.txt +0 −1
  164. Documentation/devicetree/bindings/gpio/gpio-74x164.txt +3 −0
  165. Documentation/devicetree/bindings/gpio/gpio-aspeed.txt +1 −1
  166. Documentation/devicetree/bindings/gpio/gpio-davinci.txt +89 −2
  167. Documentation/devicetree/bindings/gpio/gpio-mpc8xxx.txt +0 −1
  168. Documentation/devicetree/bindings/gpio/gpio-vf610.txt +3 −1
  169. Documentation/devicetree/bindings/gpio/renesas,gpio-rcar.txt +12 −4
  170. Documentation/devicetree/bindings/gpio/spear_spics.txt +0 −1
  171. Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt +1 −0
  172. Documentation/devicetree/bindings/gpu/arm,mali-utgard.txt +5 −0
  173. Documentation/devicetree/bindings/gpu/nvidia,gk20a.txt +0 −3
  174. Documentation/devicetree/bindings/gpu/samsung-g2d.txt +0 −1
  175. Documentation/devicetree/bindings/hsi/omap-ssi.txt +0 −1
  176. Documentation/devicetree/bindings/hwmon/aspeed-pwm-tacho.txt +9 −0
  177. Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt +21 −0
  178. Documentation/devicetree/bindings/hwmon/ltq-cputemp.txt +10 −0
  179. Documentation/devicetree/bindings/i2c/i2c-altera.txt +39 −0
  180. Documentation/devicetree/bindings/i2c/i2c-cbus-gpio.txt +2 −2
  181. Documentation/devicetree/bindings/i2c/i2c-demux-pinctrl.txt +0 −1
  182. Documentation/devicetree/bindings/i2c/i2c-efm32.txt +0 −1
  183. Documentation/devicetree/bindings/i2c/i2c-mtk.txt +8 −7
  184. Documentation/devicetree/bindings/i2c/i2c-rcar.txt +4 −1
  185. Documentation/devicetree/bindings/i2c/i2c-rk3x.txt +1 −0
  186. Documentation/devicetree/bindings/i2c/i2c-sh_mobile.txt +4 −1
  187. Documentation/devicetree/bindings/i2c/i2c-sprd.txt +31 −0
  188. Documentation/devicetree/bindings/i2c/i2c-stm32.txt +26 −3
  189. Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.txt +0 −1
  190. Documentation/devicetree/bindings/iio/adc/at91-sama5d2_adc.txt +6 −0
  191. Documentation/devicetree/bindings/iio/adc/brcm,iproc-static-adc.txt +0 −1
  192. Documentation/devicetree/bindings/iio/adc/lpc1850-adc.txt +0 −1
  193. Documentation/devicetree/bindings/iio/adc/mt6577_auxadc.txt +1 −0
  194. Documentation/devicetree/bindings/iio/adc/rockchip-saradc.txt +1 −0
  195. Documentation/devicetree/bindings/iio/adc/st,stm32-adc.txt +5 −0
  196. Documentation/devicetree/bindings/iio/counter/stm32-lptimer-cnt.txt +27 −0
  197. Documentation/devicetree/bindings/iio/dac/lpc1850-dac.txt +0 −1
  198. Documentation/devicetree/bindings/iio/dac/st,stm32-dac.txt +3 −1
  199. Documentation/devicetree/bindings/iio/humidity/hdc100x.txt +17 −0
  200. Documentation/devicetree/bindings/iio/humidity/hts221.txt +10 −1
  201. Documentation/devicetree/bindings/iio/humidity/htu21.txt +13 −0
  202. Documentation/devicetree/bindings/iio/imu/st_lsm6dsx.txt +8 −0
  203. Documentation/devicetree/bindings/iio/pressure/ms5637.txt +17 −0
  204. Documentation/devicetree/bindings/iio/st-sensors.txt +3 −0
  205. Documentation/devicetree/bindings/iio/temperature/tsys01.txt +19 −0
  206. Documentation/devicetree/bindings/iio/timer/stm32-lptimer-trigger.txt +23 −0
  207. Documentation/devicetree/bindings/iio/timer/stm32-timer-trigger.txt +4 −2
  208. Documentation/devicetree/bindings/input/atmel,maxtouch.txt +2 −0
  209. Documentation/devicetree/bindings/input/brcm,bcm-keypad.txt +0 −1
  210. Documentation/devicetree/bindings/input/pwm-vibrator.txt +66 −0
  211. Documentation/devicetree/bindings/input/ti,drv260x.txt +1 −1
  212. Documentation/devicetree/bindings/input/touchscreen/colibri-vf50-ts.txt +0 −1
  213. Documentation/devicetree/bindings/input/touchscreen/imx6ul_tsc.txt +0 −1
  214. Documentation/devicetree/bindings/interrupt-controller/fsl,ls-scfg-msi.txt +5 −3
  215. Documentation/devicetree/bindings/interrupt-controller/mediatek,sysirq.txt +1 −0
  216. Documentation/devicetree/bindings/interrupt-controller/socionext,uniphier-aidet.txt +32 −0
  217. Documentation/devicetree/bindings/iommu/qcom,iommu.txt +121 −0
  218. Documentation/devicetree/bindings/iommu/rockchip,iommu.txt +5 −0
  219. Documentation/devicetree/bindings/leds/ams,as3645a.txt +71 −0
  220. Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.txt +14 −0
  221. Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.txt +13 −0
  222. Documentation/devicetree/bindings/leds/leds-gpio.txt +3 −0
  223. Documentation/devicetree/bindings/leds/leds-pca955x.txt +88 −0
  224. Documentation/devicetree/bindings/media/i2c/adv748x.txt +95 −0
  225. Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.txt +9 −0
  226. Documentation/devicetree/bindings/media/meson-ao-cec.txt +28 −0
  227. Documentation/devicetree/bindings/media/mtk-cir.txt +6 −2
  228. Documentation/devicetree/bindings/media/pxa-camera.txt +0 −1
  229. Documentation/devicetree/bindings/media/qcom,camss.txt +197 −0
  230. Documentation/devicetree/bindings/media/renesas,drif.txt +1 −0
  231. Documentation/devicetree/bindings/media/s5p-cec.txt +0 −1
  232. Documentation/devicetree/bindings/media/samsung-fimc.txt +0 −2
  233. Documentation/devicetree/bindings/media/stih407-c8sectpfe.txt +0 −1
  234. Documentation/devicetree/bindings/media/ti,da850-vpif.txt +0 −1
  235. Documentation/devicetree/bindings/media/video-interfaces.txt +7 −1
  236. Documentation/devicetree/bindings/media/zx-irdec.txt +14 −0
  237. Documentation/devicetree/bindings/memory-controllers/mediatek,smi-larb.txt +15 −0
  238. Documentation/devicetree/bindings/memory-controllers/mvebu-devbus.txt +0 −1
  239. Documentation/devicetree/bindings/mfd/act8945a.txt +0 −2
  240. Documentation/devicetree/bindings/mfd/atmel-hlcdc.txt +0 −1
  241. Documentation/devicetree/bindings/mfd/atmel-smc.txt +1 −0
  242. Documentation/devicetree/bindings/mfd/axp20x.txt +45 −5
  243. Documentation/devicetree/bindings/mfd/bd9571mwv.txt +49 −0
  244. Documentation/devicetree/bindings/mfd/da9052-i2c.txt +8 −1
  245. Documentation/devicetree/bindings/mfd/mc13xxx.txt +0 −1
  246. Documentation/devicetree/bindings/mfd/mxs-lradc.txt +0 −2
  247. Documentation/devicetree/bindings/mfd/retu.txt +25 −0
  248. Documentation/devicetree/bindings/mfd/rk808.txt +21 −1
  249. Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.txt +0 −2
  250. Documentation/devicetree/bindings/mfd/stm32-lptimer.txt +48 −0
  251. Documentation/devicetree/bindings/mfd/tps6105x.txt +17 −0
  252. Documentation/devicetree/bindings/mfd/wm831x.txt +1 −0
  253. Documentation/devicetree/bindings/mfd/zii,rave-sp.txt +39 −0
  254. Documentation/devicetree/bindings/mips/lantiq/fpi-bus.txt +31 −0
  255. Documentation/devicetree/bindings/mips/lantiq/rcu-gphy.txt +36 −0
  256. Documentation/devicetree/bindings/mips/lantiq/rcu.txt +89 −0
  257. Documentation/devicetree/bindings/mips/ni.txt +7 −0
  258. Documentation/devicetree/bindings/mips/ralink.txt +1 −0
  259. Documentation/devicetree/bindings/misc/atmel-ssc.txt +0 −1
  260. Documentation/devicetree/bindings/mmc/arasan,sdhci.txt +0 −1
  261. Documentation/devicetree/bindings/mmc/davinci_mmc.txt +0 −1
  262. Documentation/devicetree/bindings/mmc/fsl-imx-mmc.txt +0 −1
  263. Documentation/devicetree/bindings/mmc/mmc-card.txt +0 −1
  264. Documentation/devicetree/bindings/mmc/mmc.txt +0 −1
  265. Documentation/devicetree/bindings/mmc/orion-sdio.txt +0 −1
  266. Documentation/devicetree/bindings/mmc/renesas,mmcif.txt +3 −1
  267. Documentation/devicetree/bindings/mmc/rockchip-dw-mshc.txt +1 −0
  268. Documentation/devicetree/bindings/mmc/sdhci-st.txt +0 −3
  269. Documentation/devicetree/bindings/mmc/sunxi-mmc.txt +1 −0
  270. Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt +37 −15
  271. Documentation/devicetree/bindings/mmc/tmio_mmc.txt +4 −4
  272. Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt +0 −1
  273. Documentation/devicetree/bindings/mtd/atmel-quadspi.txt +0 −1
  274. Documentation/devicetree/bindings/mtd/mtk-quadspi.txt +0 −1
  275. Documentation/devicetree/bindings/mtd/qcom_nandc.txt +59 −6
  276. Documentation/devicetree/bindings/mtd/st-fsm.txt +0 −1
  277. Documentation/devicetree/bindings/mtd/sunxi-nand.txt +0 −1
  278. Documentation/devicetree/bindings/net/anarion-gmac.txt +25 −0
  279. Documentation/devicetree/bindings/net/brcm,amac.txt +0 −1
  280. Documentation/devicetree/bindings/net/broadcom-bluetooth.txt +35 −0
  281. Documentation/devicetree/bindings/net/btusb.txt +0 −1
  282. Documentation/devicetree/bindings/net/can/c_can.txt +12 −1
  283. Documentation/devicetree/bindings/net/can/m_can.txt +0 −1
  284. Documentation/devicetree/bindings/net/dsa/ksz.txt +0 −2
  285. Documentation/devicetree/bindings/net/dsa/lan9303.txt +0 −3
  286. Documentation/devicetree/bindings/net/dwmac-sun8i.txt +0 −84
  287. Documentation/devicetree/bindings/net/ethernet.txt +4 −0
  288. Documentation/devicetree/bindings/net/ftgmac100.txt +0 −1
  289. Documentation/devicetree/bindings/net/marvell-armada-370-neta.txt +0 −1
  290. Documentation/devicetree/bindings/net/marvell-bt-8xxx.txt +0 −2
  291. Documentation/devicetree/bindings/net/marvell-neta-bm.txt +0 −2
  292. Documentation/devicetree/bindings/net/marvell-pp2.txt +26 −6
  293. Documentation/devicetree/bindings/net/mediatek-net.txt +13 −5
  294. Documentation/devicetree/bindings/net/meson-dwmac.txt +0 −1
  295. Documentation/devicetree/bindings/net/micrel-ksz90x1.txt +0 −1
  296. Documentation/devicetree/bindings/net/microchip,enc28j60.txt +0 −1
  297. Documentation/devicetree/bindings/net/nfc/nfcmrvl.txt +0 −2
  298. Documentation/devicetree/bindings/net/nfc/nxp-nci.txt +0 −1
  299. Documentation/devicetree/bindings/net/nfc/pn533-i2c.txt +0 −1
  300. Documentation/devicetree/bindings/net/nfc/pn544.txt +0 −1
  301. Documentation/devicetree/bindings/net/nfc/s3fwrn5.txt +0 −1
  302. Documentation/devicetree/bindings/net/nfc/st-nci-i2c.txt +0 −1
  303. Documentation/devicetree/bindings/net/nfc/st-nci-spi.txt +0 −1
  304. Documentation/devicetree/bindings/net/nfc/st21nfca.txt +0 −1
  305. Documentation/devicetree/bindings/net/nfc/st95hf.txt +0 −2
  306. Documentation/devicetree/bindings/net/nfc/trf7970a.txt +0 −2
  307. Documentation/devicetree/bindings/net/oxnas-dwmac.txt +0 −1
  308. Documentation/devicetree/bindings/net/phy.txt +8 −7
  309. Documentation/devicetree/bindings/net/qca,qca7000.txt +0 −2
  310. Documentation/devicetree/bindings/net/renesas,ravb.txt +18 −12
  311. Documentation/devicetree/bindings/net/rockchip-dwmac.txt +1 −1
  312. Documentation/devicetree/bindings/net/sff,sfp.txt +76 −0
  313. Documentation/devicetree/bindings/net/smsc-lan87xx.txt +0 −1
  314. Documentation/devicetree/bindings/net/socfpga-dwmac.txt +0 −1
  315. Documentation/devicetree/bindings/net/sti-dwmac.txt +0 −1
  316. Documentation/devicetree/bindings/net/stm32-dwmac.txt +0 −1
  317. Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt +0 −1
  318. Documentation/devicetree/bindings/net/wireless/esp,esp8089.txt +0 −1
  319. Documentation/devicetree/bindings/net/wireless/marvell-8xxx.txt +0 −1
  320. Documentation/devicetree/bindings/net/wireless/ti,wlcore.txt +0 −1
  321. Documentation/devicetree/bindings/net/xilinx_axienet.txt +55 −0
  322. Documentation/devicetree/bindings/nvmem/mtk-efuse.txt +4 −1
  323. Documentation/devicetree/bindings/nvmem/mxs-ocotp.txt +0 −1
  324. Documentation/devicetree/bindings/opp/opp.txt +0 −1
  325. Documentation/devicetree/bindings/pci/83xx-512x-pci.txt +3 −3
  326. Documentation/devicetree/bindings/pci/aardvark-pci.txt +0 −1
  327. Documentation/devicetree/bindings/pci/altera-pcie.txt +9 −9
  328. Documentation/devicetree/bindings/pci/axis,artpec6-pcie.txt +1 −1
  329. Documentation/devicetree/bindings/pci/designware-pcie.txt +11 −13
  330. Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt +1 −1
  331. Documentation/devicetree/bindings/pci/hisilicon-pcie.txt +2 −4
  332. Documentation/devicetree/bindings/pci/kirin-pcie.txt +4 −4
  333. Documentation/devicetree/bindings/pci/layerscape-pci.txt +3 −1
  334. Documentation/devicetree/bindings/pci/mediatek,mt7623-pcie.txt +0 −130
  335. Documentation/devicetree/bindings/pci/mediatek-pcie.txt +284 −0
  336. Documentation/devicetree/bindings/pci/mvebu-pci.txt +2 −13
  337. Documentation/devicetree/bindings/pci/pci-armada8k.txt +1 −2
  338. Documentation/devicetree/bindings/pci/pci-keystone.txt +7 −8
  339. Documentation/devicetree/bindings/pci/pci-rcar-gen2.txt +5 −2
  340. Documentation/devicetree/bindings/pci/pci.txt +2 −2
  341. Documentation/devicetree/bindings/pci/qcom,pcie.txt +25 −2
  342. Documentation/devicetree/bindings/pci/ralink,rt3883-pci.txt +1 −1
  343. Documentation/devicetree/bindings/pci/rcar-pci.txt +3 −5
  344. Documentation/devicetree/bindings/pci/rockchip-pcie.txt +25 −3
  345. Documentation/devicetree/bindings/pci/samsung,exynos5440-pcie.txt +11 −11
  346. Documentation/devicetree/bindings/pci/spear13xx-pcie.txt +3 −3
  347. Documentation/devicetree/bindings/pci/ti-pci.txt +4 −4
  348. Documentation/devicetree/bindings/pci/versatile.txt +1 −1
  349. Documentation/devicetree/bindings/pci/xgene-pci-msi.txt +3 −3
  350. Documentation/devicetree/bindings/pci/xgene-pci.txt +4 −4
  351. Documentation/devicetree/bindings/pci/xilinx-nwl-pcie.txt +4 −3
  352. Documentation/devicetree/bindings/phy/apm-xgene-phy.txt +0 −3
  353. Documentation/devicetree/bindings/phy/keystone-usb-phy.txt +0 −1
  354. Documentation/devicetree/bindings/phy/phy-bindings.txt +3 −1
  355. Documentation/devicetree/bindings/phy/phy-lantiq-rcu-usb2.txt +40 −0
  356. Documentation/devicetree/bindings/phy/phy-mtk-tphy.txt +12 −9
  357. Documentation/devicetree/bindings/phy/phy-mvebu-comphy.txt +43 −0
  358. Documentation/devicetree/bindings/phy/phy-mvebu.txt +0 −1
  359. Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt +10 −3
  360. Documentation/devicetree/bindings/phy/qcom-dwc3-usb-phy.txt +0 −2
  361. Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt +11 −0
  362. Documentation/devicetree/bindings/phy/ralink-usb-phy.txt +23 −0
  363. Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt +6 −1
  364. Documentation/devicetree/bindings/phy/samsung-phy.txt +0 −1
  365. Documentation/devicetree/bindings/phy/sun4i-usb-phy.txt +8 −2
  366. Documentation/devicetree/bindings/phy/sun9i-usb-phy.txt +0 −1
  367. Documentation/devicetree/bindings/pinctrl/atmel,at91-pinctrl.txt +0 −1
  368. Documentation/devicetree/bindings/pinctrl/cortina,gemini-pinctrl.txt +59 −0
  369. Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt +0 −1
  370. Documentation/devicetree/bindings/pinctrl/fsl,imx7d-pinctrl.txt +0 −1
  371. Documentation/devicetree/bindings/pinctrl/fsl,imx7ulp-pinctrl.txt +61 −0
  372. Documentation/devicetree/bindings/pinctrl/nvidia,tegra124-dpaux-padctl.txt +0 −1
  373. Documentation/devicetree/bindings/pinctrl/oxnas,pinctrl.txt +0 −1
  374. Documentation/devicetree/bindings/pinctrl/pinctrl-aspeed.txt +5 −3
  375. Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt +2 −0
  376. Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt +1 −0
  377. Documentation/devicetree/bindings/pinctrl/pinctrl-rk805.txt +63 −0
  378. Documentation/devicetree/bindings/pinctrl/pinctrl-zx.txt +0 −1
  379. Documentation/devicetree/bindings/pinctrl/qcom,apq8064-pinctrl.txt +2 −1
  380. Documentation/devicetree/bindings/pinctrl/qcom,ipq4019-pinctrl.txt +5 −1
  381. Documentation/devicetree/bindings/pinctrl/qcom,pmic-gpio.txt +25 −1
  382. Documentation/devicetree/bindings/pinctrl/renesas,pfc-pinctrl.txt +2 −2
  383. Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt +1 −1
  384. Documentation/devicetree/bindings/pinctrl/sprd,pinctrl.txt +83 −0
  385. Documentation/devicetree/bindings/pinctrl/sprd,sc9860-pinctrl.txt +70 −0
  386. Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt +0 −1
  387. Documentation/devicetree/bindings/power/power-controller.txt +0 −1
  388. Documentation/devicetree/bindings/power/renesas,apmu.txt +2 −1
  389. Documentation/devicetree/bindings/power/renesas,rcar-sysc.txt +1 −0
  390. Documentation/devicetree/bindings/power/reset/st-reset.txt +0 −1
  391. Documentation/devicetree/bindings/power/rockchip-io-domain.txt +2 −0
  392. Documentation/devicetree/bindings/power/supply/act8945a-charger.txt +0 −2
  393. Documentation/devicetree/bindings/power/supply/bq24190.txt +51 −0
  394. Documentation/devicetree/bindings/power/supply/ltc2941.txt +8 −7
  395. Documentation/devicetree/bindings/power/supply/max8903-charger.txt +0 −1
  396. Documentation/devicetree/bindings/power/supply/maxim,max14656.txt +0 −1
  397. Documentation/devicetree/bindings/power/wakeup-source.txt +4 −5
  398. Documentation/devicetree/bindings/powerpc/ibm,vas.txt +22 −0
  399. Documentation/devicetree/bindings/powerpc/opal/sensor-groups.txt +27 −0
  400. Documentation/devicetree/bindings/pps/pps-gpio.txt +6 −2
  401. Documentation/devicetree/bindings/ptp/brcm,ptp-dte.txt +0 −1
  402. Documentation/devicetree/bindings/pwm/pwm-bcm2835.txt +2 −2
  403. Documentation/devicetree/bindings/pwm/pwm-mediatek.txt +5 −1
  404. Documentation/devicetree/bindings/pwm/pwm-meson.txt +0 −1
  405. Documentation/devicetree/bindings/pwm/pwm-rockchip.txt +9 −2
  406. Documentation/devicetree/bindings/pwm/pwm-stm32-lp.txt +24 −0
  407. Documentation/devicetree/bindings/pwm/pwm-sun4i.txt +0 −1
  408. Documentation/devicetree/bindings/pwm/pwm-tiecap.txt +1 −0
  409. Documentation/devicetree/bindings/pwm/pwm-tipwmss.txt +0 −2
  410. Documentation/devicetree/bindings/pwm/pwm-zx.txt +22 −0
  411. Documentation/devicetree/bindings/pwm/renesas,tpu-pwm.txt +0 −1
  412. Documentation/devicetree/bindings/regulator/act8865-regulator.txt +0 −1
  413. Documentation/devicetree/bindings/regulator/act8945a-regulator.txt +0 −1
  414. Documentation/devicetree/bindings/regulator/mt6311-regulator.txt +1 −1
  415. Documentation/devicetree/bindings/regulator/mt6323-regulator.txt +1 −1
  416. Documentation/devicetree/bindings/regulator/mt6380-regulator.txt +89 −0
  417. Documentation/devicetree/bindings/regulator/mt6397-regulator.txt +1 −1
  418. Documentation/devicetree/bindings/regulator/pwm-regulator.txt +1 −1
  419. Documentation/devicetree/bindings/regulator/st,stm32-vrefbuf.txt +20 −0
  420. Documentation/devicetree/bindings/remoteproc/imx-rproc.txt +33 −0
  421. Documentation/devicetree/bindings/remoteproc/qcom,adsp.txt +4 −3
  422. Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt +5 −0
  423. Documentation/devicetree/bindings/remoteproc/ti,davinci-rproc.txt +86 −0
  424. Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt +64 −9
  425. Documentation/devicetree/bindings/reset/lantiq,reset.txt +30 −0
  426. Documentation/devicetree/bindings/reset/nxp,lpc1850-rgu.txt +0 −1
  427. Documentation/devicetree/bindings/reset/renesas,rst.txt +1 −0
  428. Documentation/devicetree/bindings/reset/uniphier-reset.txt +25 −2
  429. Documentation/devicetree/bindings/rng/imx-rngc.txt +21 −0
  430. Documentation/devicetree/bindings/rtc/google,goldfish-rtc.txt +17 −0
  431. Documentation/devicetree/bindings/rtc/isil,isl12057.txt +0 −1
  432. Documentation/devicetree/bindings/rtc/realtek,rtd119x.txt +16 −0
  433. Documentation/devicetree/bindings/rtc/st,stm32-rtc.txt +0 −1
  434. Documentation/devicetree/bindings/rtc/sun6i-rtc.txt +2 −2
  435. Documentation/devicetree/bindings/scsi/hisilicon-sas.txt +0 −1
  436. Documentation/devicetree/bindings/security/tpm/st33zp24-i2c.txt +0 −1
  437. Documentation/devicetree/bindings/security/tpm/st33zp24-spi.txt +0 −1
  438. Documentation/devicetree/bindings/security/tpm/tpm-i2c.txt +6 −1
  439. Documentation/devicetree/bindings/security/tpm/tpm_tis_spi.txt +0 −1
  440. Documentation/devicetree/bindings/serial/8250.txt +2 −0
  441. Documentation/devicetree/bindings/serial/arc-uart.txt +0 −1
  442. Documentation/devicetree/bindings/serial/axis,etraxfs-uart.txt +0 −1
  443. Documentation/devicetree/bindings/serial/mtk-uart.txt +1 −0
  444. Documentation/devicetree/bindings/serial/nvidia,tegra20-hsuart.txt +0 −1
  445. Documentation/devicetree/bindings/serial/qcom,msm-uartdm.txt +0 −3
  446. Documentation/devicetree/bindings/serial/renesas,sci-serial.txt +2 −0
  447. Documentation/devicetree/bindings/serial/rs485.txt +2 −3
  448. Documentation/devicetree/bindings/serial/serial.txt +0 −2
  449. Documentation/devicetree/bindings/serial/st,stm32-usart.txt +12 −5
  450. Documentation/devicetree/bindings/serio/allwinner,sun4i-ps2.txt +0 −1
  451. Documentation/devicetree/bindings/serio/ps2-gpio.txt +23 −0
  452. Documentation/devicetree/bindings/soc/mediatek/scpsys.txt +3 −0
  453. Documentation/devicetree/bindings/soc/qcom/qcom,glink.txt +7 −6
  454. Documentation/devicetree/bindings/soc/qcom/qcom,gsbi.txt +0 −1
  455. Documentation/devicetree/bindings/soc/rockchip/grf.txt +3 −0
  456. Documentation/devicetree/bindings/soc/rockchip/power_domain.txt +3 −0
  457. Documentation/devicetree/bindings/soc/ti/sci-pm-domain.txt +3 −2
  458. Documentation/devicetree/bindings/sound/armada-370db-audio.txt +0 −1
  459. Documentation/devicetree/bindings/sound/atmel-classd.txt +3 −6
  460. Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt +0 −1
  461. Documentation/devicetree/bindings/sound/brcm,cygnus-audio.txt +0 −4
  462. Documentation/devicetree/bindings/sound/cs43130.txt +67 −0
  463. Documentation/devicetree/bindings/sound/davinci-mcbsp.txt +0 −1
  464. Documentation/devicetree/bindings/sound/dmic.txt +16 −0
  465. Documentation/devicetree/bindings/sound/fsl,asrc.txt +0 −1
  466. Documentation/devicetree/bindings/sound/fsl,esai.txt +0 −1
  467. Documentation/devicetree/bindings/sound/fsl,spdif.txt +0 −1
  468. Documentation/devicetree/bindings/sound/hdmi.txt +0 −1
  469. Documentation/devicetree/bindings/sound/mt2701-afe-pcm.txt +3 −1
  470. Documentation/devicetree/bindings/sound/qcom,msm8916-wcd-analog.txt +17 −1
  471. Documentation/devicetree/bindings/sound/renesas,rsnd.txt +34 −36
  472. Documentation/devicetree/bindings/sound/rockchip,pdm.txt +5 −3
  473. Documentation/devicetree/bindings/sound/rockchip,rk3399-gru-sound.txt +1 −1
  474. Documentation/devicetree/bindings/sound/rockchip-i2s.txt +4 −0
  475. Documentation/devicetree/bindings/sound/rockchip-spdif.txt +0 −1
  476. Documentation/devicetree/bindings/sound/rt274.txt +33 −0
  477. Documentation/devicetree/bindings/sound/rt5663.txt +8 −0
  478. Documentation/devicetree/bindings/sound/samsung,odroid.txt +0 −6
  479. Documentation/devicetree/bindings/sound/simple-card.txt +3 −0
  480. Documentation/devicetree/bindings/sound/simple-scu-card.txt +1 −0
  481. Documentation/devicetree/bindings/sound/st,sti-asoc-card.txt +0 −5
  482. Documentation/devicetree/bindings/sound/sun4i-i2s.txt +2 −0
  483. Documentation/devicetree/bindings/sound/sunxi,sun4i-spdif.txt +0 −1
  484. Documentation/devicetree/bindings/sound/tas5720.txt +0 −1
  485. Documentation/devicetree/bindings/sound/tlv320aic32x4.txt +12 −1
  486. Documentation/devicetree/bindings/sound/tlv320aic3x.txt +5 −0
  487. Documentation/devicetree/bindings/sound/wm8524.txt +16 −0
  488. Documentation/devicetree/bindings/sound/zte,zx-i2s.txt +0 −1
  489. Documentation/devicetree/bindings/sound/zte,zx-spdif.txt +0 −1
  490. Documentation/devicetree/bindings/spi/efm32-spi.txt +0 −2
  491. Documentation/devicetree/bindings/spi/fsl-imx-cspi.txt +1 −0
  492. Documentation/devicetree/bindings/spi/nvidia,tegra114-spi.txt +0 −1
  493. Documentation/devicetree/bindings/spi/nvidia,tegra20-sflash.txt +0 −1
  494. Documentation/devicetree/bindings/spi/nvidia,tegra20-slink.txt +0 −1
  495. Documentation/devicetree/bindings/spi/sh-hspi.txt +0 −1
  496. Documentation/devicetree/bindings/spi/sh-msiof.txt +1 −1
  497. Documentation/devicetree/bindings/spi/spi-clps711x.txt +0 −1
  498. Documentation/devicetree/bindings/spi/spi-fsl-dspi.txt +0 −1
  499. Documentation/devicetree/bindings/spi/spi-mt65xx.txt +0 −1
  500. Documentation/devicetree/bindings/spi/spi-orion.txt +0 −2
  501. Documentation/devicetree/bindings/spi/spi-rockchip.txt +1 −0
  502. Documentation/devicetree/bindings/spi/spi-sun4i.txt +0 −1
  503. Documentation/devicetree/bindings/spi/spi-sun6i.txt +0 −1
  504. Documentation/devicetree/bindings/spi/spi_atmel.txt +0 −1
  505. Documentation/devicetree/bindings/sram/renesas,smp-sram.txt +27 −0
  506. Documentation/devicetree/bindings/sram/sunxi-sram.txt +7 −3
  507. Documentation/devicetree/bindings/thermal/armada-thermal.txt +0 −1
  508. Documentation/devicetree/bindings/thermal/exynos-thermal.txt +0 −1
  509. Documentation/devicetree/bindings/thermal/mediatek-thermal.txt +1 −0
  510. Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt +0 −1
  511. Documentation/devicetree/bindings/thermal/rockchip-thermal.txt +1 −0
  512. Documentation/devicetree/bindings/thermal/uniphier-thermal.txt +64 −0
  513. Documentation/devicetree/bindings/timer/nxp,tpm-timer.txt +28 −0
  514. Documentation/devicetree/bindings/timer/renesas,cmt.txt +32 −41
  515. Documentation/devicetree/bindings/trivial-devices.txt +14 −0
  516. Documentation/devicetree/bindings/unittest.txt +0 −5
  517. Documentation/devicetree/bindings/usb/allwinner,sun4i-a10-musb.txt +0 −1
  518. Documentation/devicetree/bindings/usb/am33xx-usb.txt +2 −2
  519. Documentation/devicetree/bindings/usb/brcm,bdc.txt +29 −0
  520. Documentation/devicetree/bindings/usb/da8xx-usb.txt +0 −2
  521. Documentation/devicetree/bindings/usb/dwc3-st.txt +0 −1
  522. Documentation/devicetree/bindings/usb/dwc3-xilinx.txt +0 −1
  523. Documentation/devicetree/bindings/usb/ehci-st.txt +0 −1
  524. Documentation/devicetree/bindings/usb/exynos-usb.txt +0 −2
  525. Documentation/devicetree/bindings/usb/fcs,fusb302.txt +29 −0
  526. Documentation/devicetree/bindings/usb/isp1301.txt +0 −1
  527. Documentation/devicetree/bindings/usb/keystone-usb.txt +15 −3
  528. Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.txt +11 −3
  529. Documentation/devicetree/bindings/usb/mediatek,mtu3.txt +6 −4
  530. Documentation/devicetree/bindings/usb/ohci-st.txt +0 −1
  531. Documentation/devicetree/bindings/usb/qcom,dwc3.txt +0 −3
  532. Documentation/devicetree/bindings/usb/renesas_usb3.txt +13 −3
  533. Documentation/devicetree/bindings/usb/rockchip,dwc3.txt +0 −4
  534. Documentation/devicetree/bindings/usb/usb-device.txt +1 −2
  535. Documentation/devicetree/bindings/vendor-prefixes.txt +11 −2
  536. Documentation/devicetree/bindings/w1/fsl-imx-owire.txt +0 −1
  537. Documentation/devicetree/bindings/watchdog/aspeed-wdt.txt +40 −0
  538. Documentation/devicetree/bindings/watchdog/atmel-sama5d4-wdt.txt +0 −1
  539. Documentation/devicetree/bindings/watchdog/atmel-wdt.txt +0 −1
  540. Documentation/devicetree/bindings/watchdog/lantiq-wdt.txt +24 −0
  541. Documentation/devicetree/bindings/watchdog/marvel.txt +0 −1
  542. Documentation/devicetree/bindings/watchdog/meson-wdt.txt +5 −1
  543. Documentation/devicetree/bindings/watchdog/mtk-wdt.txt +5 −3
  544. Documentation/devicetree/bindings/watchdog/renesas-wdt.txt +1 −0
  545. Documentation/devicetree/bindings/xilinx.txt +2 −0
  546. Documentation/devicetree/booting-without-of.txt +1 −1
  547. Documentation/dmaengine/provider.txt +7 −7
  548. Documentation/doc-guide/sphinx.rst +106 −1
  549. Documentation/dontdiff +0 −1
  550. Documentation/driver-api/basics.rst +1 −4
  551. Documentation/driver-api/dma-buf.rst +0 −3
  552. Documentation/driver-api/firmware/request_firmware.rst +0 −11
  553. Documentation/driver-api/gpio.rst +45 −0
  554. Documentation/driver-api/index.rst +1 −0
  555. Documentation/driver-api/miscellaneous.rst +0 −1
  556. Documentation/driver-api/mtdnand.rst +4 −4
  557. Documentation/driver-api/pm/devices.rst +1 −1
  558. Documentation/driver-api/s390-drivers.rst +1 −1
  559. Documentation/driver-api/scsi.rst +0 −8
  560. Documentation/driver-model/devres.txt +1 −0
  561. Documentation/errseq.rst +149 −0
  562. Documentation/fb/fbcon.txt +7 −0
  563. Documentation/features/core/tracehook/arch-support.txt +1 −1
  564. Documentation/filesystems/Locking +1 −1
  565. Documentation/filesystems/caching/netfs-api.txt +0 −2
  566. Documentation/filesystems/cifs/AUTHORS +5 −0
  567. Documentation/filesystems/cifs/README +38 −43
  568. Documentation/filesystems/cifs/TODO +34 −38
  569. Documentation/filesystems/cifs/cifs.txt +14 −10
  570. Documentation/filesystems/dax.txt +2 −3
  571. Documentation/filesystems/f2fs.txt +19 −0
  572. Documentation/filesystems/orangefs.txt +4 −10
  573. Documentation/filesystems/porting +1 −1
  574. Documentation/filesystems/vfs.txt +2 −4
  575. Documentation/gpio/drivers-on-gpio.txt +5 −0
  576. Documentation/gpu/drm-uapi.rst +55 −0
  577. Documentation/gpu/index.rst +1 −0
  578. Documentation/gpu/todo.rst +15 −11
  579. Documentation/gpu/tve200.rst +6 −0
  580. Documentation/hwmon/ftsteutates +4 −0
  581. Documentation/hwmon/ibm-cffps +54 −0
  582. Documentation/hwmon/lm25066 +7 −2
  583. Documentation/i2c/i2c-topology +6 −0
  584. Documentation/iio/ep93xx_adc.txt +29 −0
  585. Documentation/infiniband/tag_matching.txt +64 −0
  586. Documentation/input/input.rst +1 −1
  587. Documentation/input/joydev/index.rst +0 −1
  588. Documentation/kbuild/makefiles.txt +3 −3
  589. Documentation/laptops/thinkpad-acpi.txt +7 −2
  590. Documentation/locking/crossrelease.txt +874 −0
  591. Documentation/locking/rt-mutex-design.txt +105 −327
  592. Documentation/locking/rt-mutex.txt +26 −32
  593. Documentation/media/ca.h.rst.exceptions +0 −1
  594. Documentation/media/cec-drivers/index.rst +34 −0
  595. Documentation/media/cec-drivers/pulse8-cec.rst +11 −0
  596. Documentation/media/dmx.h.rst.exceptions +5 −15
  597. Documentation/media/dvb-drivers/ci.rst +0 −1
  598. Documentation/media/dvb-drivers/index.rst +3 −1
  599. Documentation/media/frontend.h.rst.exceptions +175 −10
  600. Documentation/media/index.rst +6 −1
  601. Documentation/media/kapi/cec-core.rst +40 −0
  602. Documentation/media/kapi/csi2.rst +10 −0
  603. Documentation/media/kapi/v4l2-event.rst +2 −0
  604. Documentation/media/media_kapi.rst +3 −1
  605. Documentation/media/media_uapi.rst +3 −1
  606. Documentation/media/uapi/cec/cec-api.rst +4 −1
  607. Documentation/media/uapi/cec/cec-func-close.rst +1 −1
  608. Documentation/media/uapi/cec/cec-func-ioctl.rst +1 −1
  609. Documentation/media/uapi/cec/cec-func-open.rst +2 −2
  610. Documentation/media/uapi/cec/cec-func-poll.rst +4 −4
  611. Documentation/media/uapi/cec/cec-funcs.rst +0 −1
  612. Documentation/media/uapi/cec/cec-ioc-adap-g-caps.rst +8 −1
  613. Documentation/media/uapi/cec/cec-ioc-adap-g-log-addrs.rst +9 −4
  614. Documentation/media/uapi/cec/cec-ioc-dqevent.rst +26 −5
  615. Documentation/media/uapi/cec/cec-ioc-g-mode.rst +56 −26
  616. Documentation/media/uapi/cec/cec-ioc-receive.rst +2 −0
  617. Documentation/media/uapi/dvb/audio-channel-select.rst +1 −1
  618. Documentation/media/uapi/dvb/audio-fclose.rst +4 −4
  619. Documentation/media/uapi/dvb/audio-fopen.rst +4 −4
  620. Documentation/media/uapi/dvb/audio-fwrite.rst +4 −4
  621. Documentation/media/uapi/dvb/audio-set-av-sync.rst +1 −1
  622. Documentation/media/uapi/dvb/audio-set-bypass-mode.rst +3 −3
  623. Documentation/media/uapi/dvb/audio-set-mute.rst +1 −1
  624. Documentation/media/uapi/dvb/audio.rst +7 −6
  625. Documentation/media/uapi/dvb/audio_h.rst +0 −9
  626. Documentation/media/uapi/dvb/ca-fclose.rst +9 −12
  627. Documentation/media/uapi/dvb/ca-fopen.rst +25 −46
  628. Documentation/media/uapi/dvb/ca-get-cap.rst +8 −32
  629. Documentation/media/uapi/dvb/ca-get-descr-info.rst +4 −25
  630. Documentation/media/uapi/dvb/ca-get-msg.rst +12 −34
  631. Documentation/media/uapi/dvb/ca-get-slot-info.rst +17 −85
  632. Documentation/media/uapi/dvb/ca-reset.rst +8 −3
  633. Documentation/media/uapi/dvb/ca-send-msg.rst +11 −3
  634. Documentation/media/uapi/dvb/ca-set-descr.rst +8 −5
  635. Documentation/media/uapi/dvb/ca-set-pid.rst +0 −60
  636. Documentation/media/uapi/dvb/ca.rst +11 −5
  637. Documentation/media/uapi/dvb/ca_data_types.rst +1 −102
  638. Documentation/media/uapi/dvb/ca_function_calls.rst +0 −1
  639. Documentation/media/uapi/dvb/ca_h.rst +0 −9
  640. Documentation/media/uapi/dvb/demux.rst +9 −4
  641. Documentation/media/uapi/dvb/dmx-add-pid.rst +8 −4
  642. Documentation/media/uapi/dvb/dmx-fclose.rst +12 −14
  643. Documentation/media/uapi/dvb/dmx-fopen.rst +29 −37
  644. Documentation/media/uapi/dvb/dmx-fread.rst +32 −46
  645. Documentation/media/uapi/dvb/dmx-fwrite.rst +19 −22
  646. Documentation/media/uapi/dvb/dmx-get-caps.rst +0 −41
  647. Documentation/media/uapi/dvb/dmx-get-event.rst +0 −60
  648. Documentation/media/uapi/dvb/dmx-get-pes-pids.rst +26 −4
  649. Documentation/media/uapi/dvb/dmx-get-stc.rst +18 −10
  650. Documentation/media/uapi/dvb/dmx-remove-pid.rst +8 −4
  651. Documentation/media/uapi/dvb/dmx-set-buffer-size.rst +8 −3
  652. Documentation/media/uapi/dvb/dmx-set-filter.rst +9 −4
  653. Documentation/media/uapi/dvb/dmx-set-pes-filter.rst +9 −3
  654. Documentation/media/uapi/dvb/dmx-set-source.rst +0 −44
  655. Documentation/media/uapi/dvb/dmx-start.rst +10 −5
  656. Documentation/media/uapi/dvb/dmx-stop.rst +8 −4
  657. Documentation/media/uapi/dvb/dmx_fcalls.rst +0 −3
  658. Documentation/media/uapi/dvb/dmx_h.rst +0 −9
  659. Documentation/media/uapi/dvb/dmx_types.rst +1 −224
  660. Documentation/media/uapi/dvb/dtv-fe-stats.rst +0 −17
  661. Documentation/media/uapi/dvb/dtv-properties.rst +0 −15
  662. Documentation/media/uapi/dvb/dtv-property.rst +0 −31
  663. Documentation/media/uapi/dvb/dtv-stats.rst +0 −18
  664. Documentation/media/uapi/dvb/dvb-fe-read-status.rst +1 −1
  665. Documentation/media/uapi/dvb/dvb-frontend-parameters.rst +1 −1
  666. Documentation/media/uapi/dvb/dvbapi.rst +29 −14
  667. Documentation/media/uapi/dvb/dvbproperty-006.rst +0 −12
  668. Documentation/media/uapi/dvb/dvbproperty.rst +49 −41
  669. Documentation/media/uapi/dvb/dvbstb.svg +15 −16
  670. Documentation/media/uapi/dvb/examples.rst +2 −2
  671. Documentation/media/uapi/dvb/fe-diseqc-recv-slave-reply.rst +8 −40
  672. Documentation/media/uapi/dvb/fe-diseqc-reset-overload.rst +7 −3
  673. Documentation/media/uapi/dvb/fe-diseqc-send-burst.rst +7 −32
  674. Documentation/media/uapi/dvb/fe-diseqc-send-master-cmd.rst +8 −30
  675. Documentation/media/uapi/dvb/fe-dishnetwork-send-legacy-cmd.rst +6 −2
  676. Documentation/media/uapi/dvb/fe-enable-high-lnb-voltage.rst +6 −2
  677. Documentation/media/uapi/dvb/fe-get-event.rst +6 −3
  678. Documentation/media/uapi/dvb/fe-get-frontend.rst +6 −4
  679. Documentation/media/uapi/dvb/fe-get-info.rst +11 −374
  680. Documentation/media/uapi/dvb/fe-get-property.rst +8 −4
  681. Documentation/media/uapi/dvb/fe-read-ber.rst +6 −2
  682. Documentation/media/uapi/dvb/fe-read-signal-strength.rst +6 −2
  683. Documentation/media/uapi/dvb/fe-read-snr.rst +6 −2
  684. Documentation/media/uapi/dvb/fe-read-status.rst +7 −78
  685. Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst +6 −2
  686. Documentation/media/uapi/dvb/fe-set-frontend-tune-mode.rst +8 −4
  687. Documentation/media/uapi/dvb/fe-set-frontend.rst +11 −4
  688. Documentation/media/uapi/dvb/fe-set-tone.rst +6 −32
  689. Documentation/media/uapi/dvb/fe-set-voltage.rst +6 −2
  690. Documentation/media/uapi/dvb/fe-type-t.rst +1 −1
  691. Documentation/media/uapi/dvb/fe_property_parameters.rst +479 −1450
  692. Documentation/media/uapi/dvb/frontend-header.rst +4 −0
  693. Documentation/media/uapi/dvb/frontend-property-terrestrial-systems.rst +1 −1
  694. Documentation/media/uapi/dvb/frontend.rst +21 −18
  695. Documentation/media/uapi/dvb/frontend_f_close.rst +9 −7
  696. Documentation/media/uapi/dvb/frontend_f_open.rst +26 −18
  697. Documentation/media/uapi/dvb/frontend_h.rst +0 −9
  698. Documentation/media/uapi/dvb/frontend_legacy_dvbv3_api.rst +3 −3
  699. Documentation/media/uapi/dvb/headers.rst +21 −0
  700. Documentation/media/uapi/dvb/intro.rst +53 −42
  701. Documentation/media/uapi/dvb/legacy_dvb_apis.rst +20 −8
  702. Documentation/media/uapi/dvb/net-add-if.rst +6 −36
  703. Documentation/media/uapi/dvb/net-get-if.rst +6 −2
  704. Documentation/media/uapi/dvb/net-remove-if.rst +6 −2
  705. Documentation/media/uapi/dvb/net-types.rst +9 −0
  706. Documentation/media/uapi/dvb/net.rst +8 −7
  707. Documentation/media/uapi/dvb/net_h.rst +0 −9
  708. Documentation/media/uapi/dvb/query-dvb-frontend-info.rst +2 −2
  709. Documentation/media/uapi/dvb/video-continue.rst +1 −1
  710. Documentation/media/uapi/dvb/video-freeze.rst +2 −2
  711. Documentation/media/uapi/dvb/video-get-event.rst +1 −1
  712. Documentation/media/uapi/dvb/video-play.rst +1 −1
  713. Documentation/media/uapi/dvb/video-select-source.rst +1 −1
  714. Documentation/media/uapi/dvb/video-stop.rst +1 −1
  715. Documentation/media/uapi/dvb/video.rst +8 −7
  716. Documentation/media/uapi/dvb/video_h.rst +0 −9
  717. Documentation/media/uapi/gen-errors.rst +16 −33
  718. Documentation/media/uapi/mediactl/media-controller.rst +3 −1
  719. Documentation/media/uapi/mediactl/media-ioc-enum-entities.rst +1 −1
  720. Documentation/media/uapi/mediactl/media-ioc-g-topology.rst +1 −1
  721. Documentation/media/uapi/mediactl/media-types.rst +1 −1
  722. Documentation/media/uapi/rc/rc-sysfs-nodes.rst +5 −5
  723. Documentation/media/uapi/rc/remote_controllers.rst +3 −1
  724. Documentation/media/uapi/v4l/colorspaces-defs.rst +3 −1
  725. Documentation/media/uapi/v4l/colorspaces-details.rst +47 −0
  726. Documentation/media/uapi/v4l/dev-meta.rst +2 −0
  727. Documentation/media/uapi/v4l/dev-sliced-vbi.rst +16 −7
  728. Documentation/media/uapi/v4l/dev-subdev.rst +4 −4
  729. Documentation/media/uapi/v4l/driver.rst +0 −9
  730. Documentation/media/uapi/v4l/extended-controls.rst +16 −16
  731. Documentation/media/uapi/v4l/format.rst +1 −1
  732. Documentation/media/uapi/v4l/pixfmt-008.rst +0 −32
  733. Documentation/media/uapi/v4l/pixfmt-compressed.rst +0 −0
  734. Documentation/media/uapi/v4l/pixfmt-intro.rst +0 −0
  735. Documentation/media/uapi/v4l/pixfmt-inzi.rst +4 −3
  736. Documentation/media/uapi/v4l/pixfmt-m420.rst +1 −1
  737. Documentation/media/uapi/v4l/pixfmt-nv12.rst +1 −1
  738. Documentation/media/uapi/v4l/pixfmt-nv12m.rst +1 −1
  739. Documentation/media/uapi/v4l/pixfmt-nv16.rst +1 −1
  740. Documentation/media/uapi/v4l/pixfmt-nv16m.rst +1 −1
  741. Documentation/media/uapi/v4l/pixfmt-packed-hsv.rst +15 −15
  742. Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst +95 −83
  743. Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst +26 −21
  744. Documentation/media/uapi/v4l/pixfmt-rgb.rst +1 −0
  745. Documentation/media/uapi/v4l/pixfmt-srggb10p.rst +5 −9
  746. Documentation/media/uapi/v4l/pixfmt-srggb12p.rst +86 −0
  747. Documentation/media/uapi/v4l/pixfmt-uyvy.rst +1 −1
  748. Documentation/media/uapi/v4l/pixfmt-v4l2-mplane.rst +0 −0
  749. Documentation/media/uapi/v4l/pixfmt-v4l2.rst +0 −0
  750. Documentation/media/uapi/v4l/pixfmt-vyuy.rst +1 −1
  751. Documentation/media/uapi/v4l/pixfmt-y41p.rst +1 −1
  752. Documentation/media/uapi/v4l/pixfmt-yuv410.rst +1 −1
  753. Documentation/media/uapi/v4l/pixfmt-yuv411p.rst +1 −1
  754. Documentation/media/uapi/v4l/pixfmt-yuv420.rst +1 −1
  755. Documentation/media/uapi/v4l/pixfmt-yuv420m.rst +1 −1
  756. Documentation/media/uapi/v4l/pixfmt-yuv422m.rst +1 −1
  757. Documentation/media/uapi/v4l/pixfmt-yuv422p.rst +1 −1
  758. Documentation/media/uapi/v4l/pixfmt-yuv444m.rst +1 −1
  759. Documentation/media/uapi/v4l/pixfmt-yuyv.rst +1 −1
  760. Documentation/media/uapi/v4l/pixfmt-yvyu.rst +1 −1
  761. Documentation/media/uapi/v4l/pixfmt.rst +7 −8
  762. Documentation/media/uapi/v4l/subdev-formats.rst +10 −7
  763. Documentation/media/uapi/v4l/v4l2-selection-targets.rst +1 −1
  764. Documentation/media/uapi/v4l/v4l2.rst +3 −2
  765. Documentation/media/uapi/v4l/vidioc-create-bufs.rst +1 −0
  766. Documentation/media/uapi/v4l/vidioc-cropcap.rst +1 −0
  767. Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst +1 −0
  768. Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst +1 −0
  769. Documentation/media/uapi/v4l/vidioc-dqevent.rst +2 −1
  770. Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst +2 −1
  771. Documentation/media/uapi/v4l/vidioc-encoder-cmd.rst +1 −1
  772. Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst +1 −0
  773. Documentation/media/uapi/v4l/vidioc-enum-fmt.rst +1 −0
  774. Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst +4 −3
  775. Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst +3 −1
  776. Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst +1 −0
  777. Documentation/media/uapi/v4l/vidioc-enumaudio.rst +1 −0
  778. Documentation/media/uapi/v4l/vidioc-enumaudioout.rst +1 −0
  779. Documentation/media/uapi/v4l/vidioc-enuminput.rst +1 −0
  780. Documentation/media/uapi/v4l/vidioc-enumoutput.rst +1 −0
  781. Documentation/media/uapi/v4l/vidioc-enumstd.rst +7 −3
  782. Documentation/media/uapi/v4l/vidioc-expbuf.rst +1 −0
  783. Documentation/media/uapi/v4l/vidioc-g-audio.rst +1 −0
  784. Documentation/media/uapi/v4l/vidioc-g-audioout.rst +1 −0
  785. Documentation/media/uapi/v4l/vidioc-g-crop.rst +1 −0
  786. Documentation/media/uapi/v4l/vidioc-g-ctrl.rst +1 −0
  787. Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst +3 −2
  788. Documentation/media/uapi/v4l/vidioc-g-edid.rst +1 −0
  789. Documentation/media/uapi/v4l/vidioc-g-enc-index.rst +2 −1
  790. Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst +2 −1
  791. Documentation/media/uapi/v4l/vidioc-g-fbuf.rst +1 −0
  792. Documentation/media/uapi/v4l/vidioc-g-fmt.rst +2 −1
  793. Documentation/media/uapi/v4l/vidioc-g-frequency.rst +1 −0
  794. Documentation/media/uapi/v4l/vidioc-g-input.rst +1 −0
  795. Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst +1 −0
  796. Documentation/media/uapi/v4l/vidioc-g-modulator.rst +1 −0
  797. Documentation/media/uapi/v4l/vidioc-g-output.rst +1 −0
  798. Documentation/media/uapi/v4l/vidioc-g-parm.rst +1 −0
  799. Documentation/media/uapi/v4l/vidioc-g-priority.rst +1 −1
  800. Documentation/media/uapi/v4l/vidioc-g-selection.rst +1 −4
  801. Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst +4 −3
  802. Documentation/media/uapi/v4l/vidioc-g-std.rst +1 −0
  803. Documentation/media/uapi/v4l/vidioc-g-tuner.rst +9 −5
  804. Documentation/media/uapi/v4l/vidioc-overlay.rst +1 −0
  805. Documentation/media/uapi/v4l/vidioc-prepare-buf.rst +1 −0
  806. Documentation/media/uapi/v4l/vidioc-qbuf.rst +1 −0
  807. Documentation/media/uapi/v4l/vidioc-query-dv-timings.rst +1 −0
  808. Documentation/media/uapi/v4l/vidioc-querybuf.rst +1 −0
  809. Documentation/media/uapi/v4l/vidioc-querycap.rst +5 −3
  810. Documentation/media/uapi/v4l/vidioc-queryctrl.rst +3 −1
  811. Documentation/media/uapi/v4l/vidioc-querystd.rst +1 −0
  812. Documentation/media/uapi/v4l/vidioc-reqbufs.rst +1 −1
  813. Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst +1 −0
  814. Documentation/media/uapi/v4l/vidioc-streamon.rst +1 −1
  815. Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst +1 −0
  816. Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst +1 −0
  817. Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst +1 −0
  818. Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst +1 −0
  819. Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst +1 −0
  820. Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst +1 −0
  821. Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst +1 −0
  822. Documentation/media/uapi/v4l/vidioc-subscribe-event.rst +3 −2
  823. Documentation/media/v4l-drivers/au0828-cardlist.rst +34 −10
  824. Documentation/media/v4l-drivers/bttv-cardlist.rst +678 −171
  825. Documentation/media/v4l-drivers/cx23885-cardlist.rst +242 −62
  826. Documentation/media/v4l-drivers/cx88-cardlist.rst +374 −95
  827. Documentation/media/v4l-drivers/em28xx-cardlist.rst +419 −104
  828. Documentation/media/v4l-drivers/index.rst +4 −1
  829. Documentation/media/v4l-drivers/ivtv-cardlist.rst +134 −35
  830. Documentation/media/v4l-drivers/qcom_camss.rst +156 −0
  831. Documentation/media/v4l-drivers/qcom_camss_graph.dot +41 −0
  832. Documentation/media/v4l-drivers/saa7134-cardlist.rst +798 −201
  833. Documentation/media/v4l-drivers/saa7164-cardlist.rst +66 −18
  834. Documentation/media/v4l-drivers/tm6000-cardlist.rst +78 −21
  835. Documentation/media/v4l-drivers/usbvision-cardlist.rst +278 −71
  836. Documentation/media/v4l-drivers/vivid.rst +1 −0
  837. Documentation/memory-barriers.txt +32 −110
  838. Documentation/networking/00-INDEX +0 −2
  839. Documentation/networking/batman-adv.rst +220 −0
  840. Documentation/networking/batman-adv.txt +0 −215
  841. Documentation/networking/dpaa.txt +67 −1
  842. Documentation/networking/filter.txt +112 −22
  843. Documentation/networking/hinic.txt +125 −0
  844. Documentation/networking/ieee802154.txt +8 −8
  845. Documentation/networking/index.rst +1 −0
  846. Documentation/networking/ip-sysctl.txt +31 −16
  847. Documentation/networking/msg_zerocopy.rst +257 −0
  848. Documentation/networking/netdev-FAQ.txt +8 −0
  849. Documentation/networking/netvsc.txt +75 −0
  850. Documentation/networking/nf_conntrack-sysctl.txt +0 −11
  851. Documentation/networking/rmnet.txt +82 −0
  852. Documentation/networking/rxrpc.txt +56 −1
  853. Documentation/networking/strparser.txt +140 −69
  854. Documentation/networking/switchdev.txt +36 −36
  855. Documentation/nvmem/nvmem.txt +1 −1
  856. Documentation/power/states.txt +0 −125
  857. Documentation/pps/pps.txt +23 −21
  858. Documentation/printk-formats.txt +21 −8
  859. Documentation/process/applying-patches.rst +1 −42
  860. Documentation/process/changes.rst +3 −13
  861. Documentation/process/stable-kernel-rules.rst +2 −2
  862. Documentation/process/submitting-patches.rst +1 −1
  863. Documentation/rbtree.txt +33 −0
  864. Documentation/security/keys/core.rst +3 −13
  865. Documentation/security/keys/request-key.rst +1 −1
  866. Documentation/security/keys/trusted-encrypted.rst +1 −1
  867. Documentation/sphinx-static/theme_overrides.css +17 −0
  868. Documentation/sphinx/kerneldoc.py +3 −5
  869. Documentation/sphinx/requirements.txt +3 −0
  870. Documentation/static-keys.txt +20 −0
  871. Documentation/sysctl/kernel.txt +13 −1
  872. Documentation/sysctl/net.txt +36 −11
  873. Documentation/sysctl/vm.txt +3 −1
  874. Documentation/trace/stm.txt +12 −1
  875. Documentation/translations/ko_KR/memory-barriers.txt +30 −107
  876. Documentation/translations/zh_CN/HOWTO +0 −2
  877. Documentation/userspace-api/seccomp_filter.rst +50 −2
  878. Documentation/virtual/kvm/devices/arm-vgic.txt +5 −0
  879. Documentation/virtual/kvm/devices/vm.txt +13 −1
  880. Documentation/vm/hmm.txt +384 −0
  881. Documentation/vm/numa +2 −5
  882. Documentation/vm/swap_numa.txt +69 −0
  883. Documentation/watchdog/watchdog-parameters.txt +1 −1
  884. Documentation/x86/amd-memory-encryption.txt +68 −0
  885. Documentation/x86/early-microcode.txt +0 −70
  886. Documentation/x86/intel_rdt_ui.txt +285 −38
  887. Documentation/x86/microcode.txt +137 −0
  888. Documentation/x86/orc-unwinder.txt +179 −0
  889. Documentation/x86/protection-keys.txt +3 −3
  890. Documentation/x86/x86_64/5level-paging.txt +64 −0
  891. MAINTAINERS +383 −102
  892. Makefile +16 −29
  893. arch/Kconfig +26 −5
  894. arch/alpha/defconfig +0 −2
  895. arch/alpha/include/asm/Kbuild +1 −0
  896. arch/alpha/include/asm/asm-prototypes.h +18 −0
  897. arch/alpha/include/asm/core_marvel.h +1 −1
  898. arch/alpha/include/asm/fb.h +0 −13
  899. arch/alpha/include/asm/futex.h +5 −21
  900. arch/alpha/include/asm/io.h +1 −0
  901. arch/alpha/include/asm/spinlock.h +0 −5
  902. arch/alpha/include/asm/string.h +8 −7
  903. arch/alpha/include/asm/types.h +1 −1
  904. arch/alpha/include/asm/unistd.h +1 −1
  905. arch/alpha/include/asm/vga.h +1 −1
  906. arch/alpha/include/uapi/asm/mman.h +3 −11
  907. arch/alpha/include/uapi/asm/siginfo.h +14 −0
  908. arch/alpha/include/uapi/asm/socket.h +2 −0
  909. arch/alpha/include/uapi/asm/types.h +11 −1
  910. arch/alpha/include/uapi/asm/unistd.h +14 −5
  911. arch/alpha/kernel/core_marvel.c +5 −3
  912. arch/alpha/kernel/core_titan.c +2 −0
  913. arch/alpha/kernel/module.c +3 −0
  914. arch/alpha/kernel/pci-noop.c +1 −5
  915. arch/alpha/kernel/pci-sysfs.c +3 −4
  916. arch/alpha/kernel/pci.c +21 −12
  917. arch/alpha/kernel/setup.c +3 −2
  918. arch/alpha/kernel/smc37c669.c +2 −5
  919. arch/alpha/kernel/smp.c +1 −1
  920. arch/alpha/kernel/sys_marvel.c +6 −6
  921. arch/alpha/kernel/sys_nautilus.c +27 −4
  922. arch/alpha/kernel/systbls.S +9 −0
  923. arch/alpha/kernel/traps.c +5 −3
  924. arch/alpha/lib/Makefile +16 −6
  925. arch/alpha/lib/copy_user.S +1 −1
  926. arch/alpha/lib/ev6-copy_user.S +4 −3
  927. arch/alpha/lib/memset.S +5 −5
  928. arch/alpha/math-emu/math.c +1 −0
  929. arch/arc/Kconfig +10 −2
  930. arch/arc/Makefile +2 −1
  931. arch/arc/boot/dts/axc001.dtsi +9 −11
  932. arch/arc/boot/dts/axc003.dtsi +19 −13
  933. arch/arc/boot/dts/axc003_idu.dtsi +19 −13
  934. arch/arc/boot/dts/axs10x_mb.dtsi +1 −2
  935. arch/arc/boot/dts/hsdk.dts +189 −0
  936. arch/arc/boot/dts/nsim_hs.dts +1 −1
  937. arch/arc/boot/dts/vdk_axs10x_mb.dtsi +0 −1
  938. arch/arc/configs/haps_hs_defconfig +0 −1
  939. arch/arc/configs/haps_hs_smp_defconfig +0 −1
  940. arch/arc/configs/hsdk_defconfig +80 −0
  941. arch/arc/configs/nps_defconfig +0 −1
  942. arch/arc/configs/nsim_700_defconfig +0 −1
  943. arch/arc/configs/nsim_hs_defconfig +0 −1
  944. arch/arc/configs/nsim_hs_smp_defconfig +0 −1
  945. arch/arc/configs/nsimosci_defconfig +0 −1
  946. arch/arc/configs/nsimosci_hs_defconfig +0 −1
  947. arch/arc/configs/nsimosci_hs_smp_defconfig +0 −1
  948. arch/arc/configs/tb10x_defconfig +0 −1
  949. arch/arc/include/asm/atomic.h +2 −0
  950. arch/arc/include/asm/cache.h +6 −1
  951. arch/arc/include/asm/entry-compact.h +24 −0
  952. arch/arc/include/asm/futex.h +5 −35
  953. arch/arc/include/asm/irqflags-arcv2.h +0 −3
  954. arch/arc/include/asm/irqflags-compact.h +0 −2
  955. arch/arc/include/asm/mmu.h +2 −0
  956. arch/arc/include/asm/page.h +1 −1
  957. arch/arc/include/asm/processor.h +10 −3
  958. arch/arc/include/asm/ptrace.h +5 −0
  959. arch/arc/include/asm/spinlock.h +12 −5
  960. arch/arc/include/asm/switch_to.h +9 −0
  961. arch/arc/kernel/Makefile +0 −1
  962. arch/arc/kernel/devtree.c +3 −2
  963. arch/arc/kernel/entry-compact.S +11 −11
  964. arch/arc/kernel/entry.S +6 −0
  965. arch/arc/kernel/intc-arcv2.c +10 −0
  966. arch/arc/kernel/intc-compact.c +13 −1
  967. arch/arc/kernel/pcibios.c +0 −22
  968. arch/arc/kernel/process.c +31 −2
  969. arch/arc/kernel/setup.c +4 −4
  970. arch/arc/kernel/traps.c +2 −2
  971. arch/arc/kernel/troubleshoot.c +5 −2
  972. arch/arc/mm/cache.c +115 −18
  973. arch/arc/mm/dma.c +45 −0
  974. arch/arc/mm/fault.c +1 −1
  975. arch/arc/mm/init.c +3 −3
  976. arch/arc/mm/tlb.c +12 −5
  977. arch/arc/mm/tlbex.S +9 −0
  978. arch/arc/plat-axs10x/axs10x.c +21 −131
  979. arch/arc/plat-eznps/Kconfig +24 −2
  980. arch/arc/plat-eznps/Makefile +1 −1
  981. arch/arc/plat-eznps/ctop.c +32 −0
  982. arch/arc/plat-eznps/entry.S +1 −1
  983. arch/arc/plat-eznps/include/plat/ctop.h +2 −0
  984. arch/arc/plat-eznps/mtm.c +46 −4
  985. arch/arc/plat-hsdk/Kconfig +9 −0
  986. arch/arc/plat-hsdk/Makefile +9 −0
  987. arch/arc/plat-hsdk/platform.c +66 −0
  988. arch/arc/plat-sim/Kconfig +0 −13
  989. arch/arc/plat-sim/platform.c +4 −1
  990. arch/arm/Kconfig +3 −3
  991. arch/arm/Kconfig.debug +38 −15
  992. arch/arm/boot/compressed/efi-header.S +82 −78
  993. arch/arm/boot/compressed/vmlinux.lds.S +23 −7
  994. arch/arm/boot/dts/Makefile +18 −6
  995. arch/arm/boot/dts/am335x-bone-common.dtsi +0 −3
  996. arch/arm/boot/dts/am335x-chiliboard.dts +0 −3
  997. arch/arm/boot/dts/am335x-evm.dts +1 −0
  998. arch/arm/boot/dts/am335x-moxa-uc-8100-me-t.dts +525 −0
  999. arch/arm/boot/dts/am437x-gp-evm.dts +15 −0
  1000. arch/arm/boot/dts/am43x-epos-evm.dts +1 −0
  1001. arch/arm/boot/dts/am571x-idk.dts +28 −7
  1002. arch/arm/boot/dts/am572x-idk.dts +25 −9
  1003. arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi +7 −29
  1004. arch/arm/boot/dts/am57xx-beagle-x15-revb1.dts +16 −1
  1005. arch/arm/boot/dts/am57xx-beagle-x15-revc.dts +39 −0
  1006. arch/arm/boot/dts/am57xx-beagle-x15.dts +11 −0
  1007. arch/arm/boot/dts/am57xx-idk-common.dtsi +8 −0
  1008. arch/arm/boot/dts/armada-370.dtsi +3 −1
  1009. arch/arm/boot/dts/armada-375.dtsi +3 −1
  1010. arch/arm/boot/dts/armada-380.dtsi +4 −1
  1011. arch/arm/boot/dts/armada-385-db-ap.dts +1 −1
  1012. arch/arm/boot/dts/armada-385-turris-omnia.dts +1 −1
  1013. arch/arm/boot/dts/armada-385.dtsi +5 −1
  1014. arch/arm/boot/dts/armada-388-clearfog.dts +1 −1
  1015. arch/arm/boot/dts/armada-388-clearfog.dtsi +1 −1
  1016. arch/arm/boot/dts/armada-388-db.dts +1 −1
  1017. arch/arm/boot/dts/armada-388-gp.dts +1 −1
  1018. arch/arm/boot/dts/armada-388-rd.dts +1 −1
  1019. arch/arm/boot/dts/armada-38x.dtsi +7 −0
  1020. arch/arm/boot/dts/armada-390-db.dts +1 −1
  1021. arch/arm/boot/dts/armada-395-gp.dts +1 −1
  1022. arch/arm/boot/dts/armada-398-db.dts +1 −1
  1023. arch/arm/boot/dts/armada-39x.dtsi +5 −1
  1024. arch/arm/boot/dts/armada-xp-98dx3236.dtsi +2 −1
  1025. arch/arm/boot/dts/armada-xp-db.dts +1 −1
  1026. arch/arm/boot/dts/armada-xp-gp.dts +1 −1
  1027. arch/arm/boot/dts/armada-xp-mv78230.dtsi +6 −1
  1028. arch/arm/boot/dts/armada-xp-mv78260.dtsi +10 −1
  1029. arch/arm/boot/dts/armada-xp-mv78460.dtsi +12 −2
  1030. arch/arm/boot/dts/aspeed-g4.dtsi +2 −2
  1031. arch/arm/boot/dts/at91-sama5d27_som1.dtsi +102 −0
  1032. arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +537 −0
  1033. arch/arm/boot/dts/at91-sama5d2_xplained.dts +28 −11
  1034. arch/arm/boot/dts/at91sam9g45.dtsi +21 −0
  1035. arch/arm/boot/dts/at91sam9m10g45ek.dts +4 −0
  1036. arch/arm/boot/dts/bcm-cygnus.dtsi +135 −14
  1037. arch/arm/boot/dts/bcm-nsp.dtsi +45 −14
  1038. arch/arm/boot/dts/bcm2835-rpi-a-plus.dts +6 −0
  1039. arch/arm/boot/dts/bcm2835-rpi-a.dts +6 −0
  1040. arch/arm/boot/dts/bcm2835-rpi-b-plus.dts +6 −0
  1041. arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts +6 −0
  1042. arch/arm/boot/dts/bcm2835-rpi-b.dts +6 −0
  1043. arch/arm/boot/dts/bcm2835-rpi-zero-w.dts +139 −0
  1044. arch/arm/boot/dts/bcm2835-rpi-zero.dts +6 −0
  1045. arch/arm/boot/dts/bcm2835-rpi.dtsi +1 −1
  1046. arch/arm/boot/dts/bcm2836-rpi-2-b.dts +6 −0
  1047. arch/arm/boot/dts/bcm2836.dtsi +1 −0
  1048. arch/arm/boot/dts/bcm2837-rpi-3-b.dts +51 −1
  1049. arch/arm/boot/dts/bcm2837.dtsi +1 −0
  1050. arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts +4 −0
  1051. arch/arm/boot/dts/bcm4708-netgear-r6250.dts +3 −0
  1052. arch/arm/boot/dts/bcm4708-smartrg-sr400ac.dts +6 −0
  1053. arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts +4 −0
  1054. arch/arm/boot/dts/bcm4709-tplink-archer-c9-v1.dts +5 −0
  1055. arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts +3 −0
  1056. arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +3 −0
  1057. arch/arm/boot/dts/bcm47189-tenda-ac9.dts +2 −0
  1058. arch/arm/boot/dts/bcm5301x.dtsi +34 −0
  1059. arch/arm/boot/dts/bcm53573.dtsi +4 −0
  1060. arch/arm/boot/dts/bcm911360_entphn.dts +5 −2
  1061. arch/arm/boot/dts/bcm947189acdbmr.dts +97 −0
  1062. arch/arm/boot/dts/bcm958522er.dts +8 −0
  1063. arch/arm/boot/dts/bcm958525er.dts +8 −0
  1064. arch/arm/boot/dts/bcm958525xmc.dts +8 −0
  1065. arch/arm/boot/dts/bcm958622hr.dts +8 −0
  1066. arch/arm/boot/dts/bcm958623hr.dts +8 −0
  1067. arch/arm/boot/dts/bcm958625hr.dts +8 −0
  1068. arch/arm/boot/dts/bcm958625k.dts +8 −0
  1069. arch/arm/boot/dts/da850-lego-ev3.dts +24 −0
  1070. arch/arm/boot/dts/dove-d3plug.dts +2 −2
  1071. arch/arm/boot/dts/dove.dtsi +5 −3
  1072. arch/arm/boot/dts/dra7-evm-common.dtsi +258 −0
  1073. arch/arm/boot/dts/dra7-evm.dts +29 −248
  1074. arch/arm/boot/dts/dra7.dtsi +35 −1
  1075. arch/arm/boot/dts/dra71-evm.dts +31 −1
  1076. arch/arm/boot/dts/dra72-evm-common.dtsi +5 −2
  1077. arch/arm/boot/dts/dra72-evm-revc.dts +34 −0
  1078. arch/arm/boot/dts/dra72-evm-tps65917.dtsi +1 −1
  1079. arch/arm/boot/dts/dra72-evm.dts +32 −0
  1080. arch/arm/boot/dts/dra72x-mmc-iodelay.dtsi +350 −0
  1081. arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi +647 −0
  1082. arch/arm/boot/dts/dra76-evm.dts +423 −0
  1083. arch/arm/boot/dts/dra76x.dtsi +19 −0
  1084. arch/arm/boot/dts/exynos3250-artik5-eval.dts +0 −1
  1085. arch/arm/boot/dts/exynos3250-artik5.dtsi +0 −1
  1086. arch/arm/boot/dts/exynos3250-monk.dts +0 −1
  1087. arch/arm/boot/dts/exynos3250-rinato.dts +0 −22
  1088. arch/arm/boot/dts/exynos4210-trats.dts +0 −21
  1089. arch/arm/boot/dts/exynos4412-itop-scp-core.dtsi +0 −1
  1090. arch/arm/boot/dts/exynos4412-odroid-common.dtsi +0 −1
  1091. arch/arm/boot/dts/exynos4412-origen.dts +0 −1
  1092. arch/arm/boot/dts/exynos4412-trats2.dts +0 −22
  1093. arch/arm/boot/dts/exynos5250-arndale.dts +0 −2
  1094. arch/arm/boot/dts/exynos5250-smdk5250.dts +0 −2
  1095. arch/arm/boot/dts/exynos5250-snow-common.dtsi +0 −3
  1096. arch/arm/boot/dts/exynos5250-spring.dts +0 −2
  1097. arch/arm/boot/dts/exynos5260-xyref5260.dts +0 −2
  1098. arch/arm/boot/dts/exynos5410-smdk5410.dts +0 −2
  1099. arch/arm/boot/dts/exynos5420-peach-pit.dts +0 −3
  1100. arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi +1 −0
  1101. arch/arm/boot/dts/exynos5440.dtsi +2 −0
  1102. arch/arm/boot/dts/exynos5800-peach-pi.dts +0 −3
  1103. arch/arm/boot/dts/gemini-dlink-dir-685.dts +246 −0
  1104. arch/arm/boot/dts/gemini-nas4220b.dts +24 −0
  1105. arch/arm/boot/dts/gemini-rut1xx.dts +39 −0
  1106. arch/arm/boot/dts/gemini-sq201.dts +35 −1
  1107. arch/arm/boot/dts/gemini-wbd111.dts +26 −0
  1108. arch/arm/boot/dts/gemini-wbd222.dts +26 −0
  1109. arch/arm/boot/dts/gemini.dtsi +146 −27
  1110. arch/arm/boot/dts/imx25.dtsi +8 −0
  1111. arch/arm/boot/dts/imx53-cx9020.dts +297 −0
  1112. arch/arm/boot/dts/imx53-pinfunc.h +4 −0
  1113. arch/arm/boot/dts/imx53.dtsi +9 −0
  1114. arch/arm/boot/dts/imx6dl-gw52xx.dts +58 −0
  1115. arch/arm/boot/dts/imx6dl-gw53xx.dts +58 −0
  1116. arch/arm/boot/dts/imx6dl-gw54xx.dts +58 −0
  1117. arch/arm/boot/dts/imx6dl-riotboard.dts +45 −0
  1118. arch/arm/boot/dts/imx6q-apalis-eval.dts +278 −0
  1119. arch/arm/boot/dts/imx6q-apalis-ixora-v1.1.dts +291 −0
  1120. arch/arm/boot/dts/imx6q-apalis-ixora.dts +14 −18
  1121. arch/arm/boot/dts/imx6q-b850v3.dts +1 −1
  1122. arch/arm/boot/dts/imx6q-bx50v3.dtsi +42 −0
  1123. arch/arm/boot/dts/imx6q-evi.dts +16 −0
  1124. arch/arm/boot/dts/imx6q-gw52xx.dts +58 −0
  1125. arch/arm/boot/dts/imx6q-gw53xx.dts +58 −0
  1126. arch/arm/boot/dts/imx6q-gw54xx.dts +58 −0
  1127. arch/arm/boot/dts/imx6qdl-apalis.dtsi +20 −24
  1128. arch/arm/boot/dts/imx6qdl-gw51xx.dtsi +54 −0
  1129. arch/arm/boot/dts/imx6qdl-gw52xx.dtsi +0 −1
  1130. arch/arm/boot/dts/imx6qdl-gw53xx.dtsi +0 −1
  1131. arch/arm/boot/dts/imx6qdl-gw54xx.dtsi +0 −1
  1132. arch/arm/boot/dts/imx6qdl-gw553x.dtsi +54 −0
  1133. arch/arm/boot/dts/imx6qdl-icore-rqs.dtsi +0 −1
  1134. arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi +2 −2
  1135. arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +19 −0
  1136. arch/arm/boot/dts/imx6qdl-sabrelite.dtsi +19 −0
  1137. arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi +109 −3
  1138. arch/arm/boot/dts/imx6qdl.dtsi +1 −0
  1139. arch/arm/boot/dts/imx6sl.dtsi +1 −0
  1140. arch/arm/boot/dts/imx6sx.dtsi +1 −0
  1141. arch/arm/boot/dts/imx6ul-14x14-evk.dts +15 −25
  1142. arch/arm/boot/dts/imx6ul-geam.dts +74 −0
  1143. arch/arm/boot/dts/imx6ul-isiot-common.dtsi +0 −141
  1144. arch/arm/boot/dts/imx6ul-isiot-emmc.dts +0 −1
  1145. arch/arm/boot/dts/imx6ul-isiot-nand.dts +0 −1
  1146. arch/arm/boot/dts/imx6ul-isiot.dtsi +183 −0
  1147. arch/arm/boot/dts/imx6ul-liteboard.dts +4 −0
  1148. arch/arm/boot/dts/imx6ul.dtsi +1 −0
  1149. arch/arm/boot/dts/imx7-colibri.dtsi +9 −0
  1150. arch/arm/boot/dts/imx7d-sdb.dts +68 −41
  1151. arch/arm/boot/dts/imx7s.dtsi +32 −0
  1152. arch/arm/boot/dts/imx7ulp-pinfunc.h +468 −0
  1153. arch/arm/boot/dts/keystone-k2e-evm.dts +18 −0
  1154. arch/arm/boot/dts/keystone-k2e.dtsi +20 −0
  1155. arch/arm/boot/dts/keystone-k2g-evm.dts +71 −0
  1156. arch/arm/boot/dts/keystone-k2g-ice.dts +18 −0
  1157. arch/arm/boot/dts/keystone-k2g.dtsi +204 −0
  1158. arch/arm/boot/dts/keystone-k2hk-evm.dts +53 −0
  1159. arch/arm/boot/dts/keystone-k2hk.dtsi +139 −0
  1160. arch/arm/boot/dts/keystone-k2l-evm.dts +33 −0
  1161. arch/arm/boot/dts/keystone-k2l.dtsi +71 −0
  1162. arch/arm/boot/dts/kirkwood-6192.dtsi +2 −1
  1163. arch/arm/boot/dts/kirkwood-6281.dtsi +2 −1
  1164. arch/arm/boot/dts/kirkwood-6282.dtsi +3 −1
  1165. arch/arm/boot/dts/kirkwood-98dx4122.dtsi +2 −1
  1166. arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts +1 −1
  1167. arch/arm/boot/dts/ls1021a.dtsi +4 −4
  1168. arch/arm/boot/dts/meson.dtsi +26 −4
  1169. arch/arm/boot/dts/meson6.dtsi +28 −0
  1170. arch/arm/boot/dts/meson8.dtsi +16 −0
  1171. arch/arm/boot/dts/meson8b.dtsi +13 −20
  1172. arch/arm/boot/dts/motorola-cpcap-mapphone.dtsi +1 −0
  1173. arch/arm/boot/dts/mt2701.dtsi +106 −0
  1174. arch/arm/boot/dts/mt6323.dtsi +241 −0
  1175. arch/arm/boot/dts/mt7623.dtsi +167 −44
  1176. arch/arm/boot/dts/mt7623n-bananapi-bpi-r2.dts +487 −0
  1177. arch/arm/boot/dts/mt7623n-rfb-nand.dts +111 −0
  1178. arch/arm/boot/dts/mt7623n-rfb.dtsi +92 −0
  1179. arch/arm/boot/dts/omap2420-n8x0-common.dtsi +2 −2
  1180. arch/arm/boot/dts/omap3-beagle-xm.dts +1 −1
  1181. arch/arm/boot/dts/omap3-beagle.dts +1 −1
  1182. arch/arm/boot/dts/omap3-cm-t3517.dts +1 −1
  1183. arch/arm/boot/dts/omap3-cm-t3730.dts +1 −1
  1184. arch/arm/boot/dts/omap3-devkit8000-common.dtsi +1 −1
  1185. arch/arm/boot/dts/omap3-evm-common.dtsi +1 −1
  1186. arch/arm/boot/dts/omap3-n900.dts +88 −1
  1187. arch/arm/boot/dts/omap3-n950-n9.dtsi +14 −0
  1188. arch/arm/boot/dts/omap3-overo-base.dtsi +1 −1
  1189. arch/arm/boot/dts/omap3-tao3530.dtsi +1 −1
  1190. arch/arm/boot/dts/omap3-zoom3.dts +1 −1
  1191. arch/arm/boot/dts/omap3.dtsi +0 −4
  1192. arch/arm/boot/dts/omap3430-sdp.dts +1 −1
  1193. arch/arm/boot/dts/omap4-droid4-xt894.dts +41 −1
  1194. arch/arm/boot/dts/omap4-duovero-parlor.dts +1 −1
  1195. arch/arm/boot/dts/omap4-panda-common.dtsi +1 −1
  1196. arch/arm/boot/dts/omap4-sdp-es23plus.dts +1 −1
  1197. arch/arm/boot/dts/omap4-sdp.dts +1 −1
  1198. arch/arm/boot/dts/omap4-var-om44customboard.dtsi +1 −1
  1199. arch/arm/boot/dts/omap5-board-common.dtsi +1 −1
  1200. arch/arm/boot/dts/omap5-cm-t54.dts +1 −1
  1201. arch/arm/boot/dts/qcom-ipq4019-ap.dk01.1.dtsi +11 −18
  1202. arch/arm/boot/dts/qcom-ipq4019.dtsi +108 −1
  1203. arch/arm/boot/dts/qcom-msm8974.dtsi +1 −1
  1204. arch/arm/boot/dts/r7s72100-genmai.dts +70 −1
  1205. arch/arm/boot/dts/r7s72100-rskrza1.dts +61 −0
  1206. arch/arm/boot/dts/r7s72100.dtsi +78 −0
  1207. arch/arm/boot/dts/r8a7743-iwg20d-q7.dts +31 −0
  1208. arch/arm/boot/dts/r8a7743-iwg20m.dtsi +26 −0
  1209. arch/arm/boot/dts/r8a7743-sk-rzg1m.dts +24 −1
  1210. arch/arm/boot/dts/r8a7743.dtsi +300 −1
  1211. arch/arm/boot/dts/r8a7745-sk-rzg1e.dts +24 −1
  1212. arch/arm/boot/dts/r8a7745.dtsi +29 −1
  1213. arch/arm/boot/dts/r8a7790.dtsi +24 −6
  1214. arch/arm/boot/dts/r8a7791-koelsch.dts +9 −1
  1215. arch/arm/boot/dts/r8a7791.dtsi +23 −5
  1216. arch/arm/boot/dts/r8a7792.dtsi +18 −0
  1217. arch/arm/boot/dts/r8a7793.dtsi +18 −0
  1218. arch/arm/boot/dts/r8a7794.dtsi +20 −2
  1219. arch/arm/boot/dts/rk3036-kylin.dts +0 −2
  1220. arch/arm/boot/dts/rk3036.dtsi +1 −2
  1221. arch/arm/boot/dts/rk3066a-bqcurie2.dts +0 −2
  1222. arch/arm/boot/dts/rk3066a-mk808.dts +0 −2
  1223. arch/arm/boot/dts/rk3066a-rayeager.dts +0 −3
  1224. arch/arm/boot/dts/rk3188-px3-evb.dts +0 −2
  1225. arch/arm/boot/dts/rk3188-radxarock.dts +0 −1
  1226. arch/arm/boot/dts/rk3228-evb.dts +34 −0
  1227. arch/arm/boot/dts/rk3229-evb.dts +128 −1
  1228. arch/arm/boot/dts/rk3229.dtsi +89 −0
  1229. arch/arm/boot/dts/rk322x.dtsi +197 −2
  1230. arch/arm/boot/dts/rk3288-evb.dtsi +48 −3
  1231. arch/arm/boot/dts/rk3288-fennec.dts +6 −2
  1232. arch/arm/boot/dts/rk3288-firefly-reload-core.dtsi +1 −2
  1233. arch/arm/boot/dts/rk3288-firefly-reload.dts +0 −2
  1234. arch/arm/boot/dts/rk3288-firefly.dtsi +1 −4
  1235. arch/arm/boot/dts/rk3288-miqi.dts +1 −3
  1236. arch/arm/boot/dts/rk3288-phycore-rdk.dts +0 −1
  1237. arch/arm/boot/dts/rk3288-phycore-som.dtsi +1 −2
  1238. arch/arm/boot/dts/rk3288-popmetal.dts +1 −3
  1239. arch/arm/boot/dts/rk3288-r89.dts +1 −2
  1240. arch/arm/boot/dts/rk3288-rock2-som.dtsi +1 −2
  1241. arch/arm/boot/dts/rk3288-rock2-square.dts +0 −2
  1242. arch/arm/boot/dts/rk3288-tinker.dts +6 −2
  1243. arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi +0 −1
  1244. arch/arm/boot/dts/rk3288-veyron.dtsi +1 −3
  1245. arch/arm/boot/dts/rk3288.dtsi +126 −89
  1246. arch/arm/boot/dts/rv1108-evb.dts +190 −0
  1247. arch/arm/boot/dts/rv1108.dtsi +359 −10
  1248. arch/arm/boot/dts/sama5d2.dtsi +82 −7
  1249. arch/arm/boot/dts/spear1310.dtsi +3 −0
  1250. arch/arm/boot/dts/spear1340.dtsi +1 −0
  1251. arch/arm/boot/dts/ste-dbx5x0.dtsi +8 −7
  1252. arch/arm/boot/dts/ste-hrefprev60.dtsi +1 −1
  1253. arch/arm/boot/dts/stm32429i-eval.dts +1 −1
  1254. arch/arm/boot/dts/stm32f429-disco.dts +1 −1
  1255. arch/arm/boot/dts/stm32f429.dtsi +25 −0
  1256. arch/arm/boot/dts/stm32f469-disco.dts +1 −1
  1257. arch/arm/boot/dts/stm32f746.dtsi +51 −0
  1258. arch/arm/boot/dts/stm32f769-disco.dts +6 −0
  1259. arch/arm/boot/dts/stm32h743.dtsi +119 −8
  1260. arch/arm/boot/dts/stm32h743i-eval.dts +18 −0
  1261. arch/arm/boot/dts/sun6i-a31.dtsi +3 −3
  1262. arch/arm/boot/dts/sun7i-a20-cubietruck.dts +4 −0
  1263. arch/arm/boot/dts/sun8i-a23-a33.dtsi +3 −3
  1264. arch/arm/boot/dts/sun8i-a83t-allwinner-h8homlet-v2.dts +85 −0
  1265. arch/arm/boot/dts/sun8i-a83t-bananapi-m3.dts +148 −0
  1266. arch/arm/boot/dts/sun8i-a83t-cubietruck-plus.dts +101 −0
  1267. arch/arm/boot/dts/sun8i-a83t.dtsi +176 −0
  1268. arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts +0 −9
  1269. arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts +0 −19
  1270. arch/arm/boot/dts/sun8i-h3-beelink-x2.dts +21 −1
  1271. arch/arm/boot/dts/sun8i-h3-nanopi-neo.dts +0 −7
  1272. arch/arm/boot/dts/sun8i-h3-orangepi-2.dts +0 −8
  1273. arch/arm/boot/dts/sun8i-h3-orangepi-one.dts +0 −8
  1274. arch/arm/boot/dts/sun8i-h3-orangepi-pc-plus.dts +0 −5
  1275. arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts +0 −8
  1276. arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts +0 −22
  1277. arch/arm/boot/dts/sun8i-h3-orangepi-plus2e.dts +0 −16
  1278. arch/arm/boot/dts/sun8i-r16-bananapi-m2m.dts +321 −0
  1279. arch/arm/boot/dts/sunxi-h3-h5.dtsi +0 −26
  1280. arch/arm/boot/dts/tango4-smp8758.dtsi +0 −1
  1281. arch/arm/boot/dts/tegra114-dalmore.dts +10 −0
  1282. arch/arm/boot/dts/tegra124-jetson-tk1.dts +11 −1
  1283. arch/arm/boot/dts/tegra124.dtsi +1 −0
  1284. arch/arm/boot/dts/tegra20-paz00.dts +2 −0
  1285. arch/arm/boot/dts/tegra30-beaver.dts +10 −0
  1286. arch/arm/boot/dts/tps65217.dtsi +3 −0
  1287. arch/arm/boot/dts/uniphier-ld4-ref.dts +7 −3
  1288. arch/arm/boot/dts/uniphier-ld4.dtsi +19 −1
  1289. arch/arm/boot/dts/uniphier-ld6b-ref.dts +7 −3
  1290. arch/arm/boot/dts/uniphier-ld6b.dtsi +1 −1
  1291. arch/arm/boot/dts/uniphier-pinctrl.dtsi +21 −37
  1292. arch/arm/boot/dts/uniphier-pro4-ace.dts +1 −1
  1293. arch/arm/boot/dts/uniphier-pro4-ref.dts +7 −3
  1294. arch/arm/boot/dts/uniphier-pro4-sanji.dts +1 −1
  1295. arch/arm/boot/dts/uniphier-pro4.dtsi +19 −1
  1296. arch/arm/boot/dts/uniphier-pro5.dtsi +21 −39
  1297. arch/arm/boot/dts/uniphier-pxs2-gentil.dts +1 −1
  1298. arch/arm/boot/dts/uniphier-pxs2-vodka.dts +1 −1
  1299. arch/arm/boot/dts/uniphier-pxs2.dtsi +20 −2
  1300. arch/arm/boot/dts/uniphier-sld3-ref.dts +0 −75
  1301. arch/arm/boot/dts/uniphier-sld3.dtsi +0 −260
  1302. arch/arm/boot/dts/uniphier-sld8-ref.dts +7 −3
  1303. arch/arm/boot/dts/uniphier-sld8.dtsi +19 −1
  1304. arch/arm/boot/dts/versatile-pb.dts +1 −1
  1305. arch/arm/boot/dts/zx296702-ad1.dts +0 −2
  1306. arch/arm/boot/dts/zynq-7000.dtsi +8 −0
  1307. arch/arm/boot/dts/zynq-parallella.dts +2 −1
  1308. arch/arm/boot/dts/zynq-zc702.dts +18 −2
  1309. arch/arm/boot/dts/zynq-zc706.dts +18 −2
  1310. arch/arm/boot/dts/zynq-zed.dts +3 −2
  1311. arch/arm/boot/dts/zynq-zybo.dts +3 −2
  1312. arch/arm/configs/aspeed_g4_defconfig +4 −1
  1313. arch/arm/configs/aspeed_g5_defconfig +3 −1
  1314. arch/arm/configs/bcm2835_defconfig +7 −0
  1315. arch/arm/configs/davinci_all_defconfig +2 −0
  1316. arch/arm/configs/exynos_defconfig +73 −6
  1317. arch/arm/configs/ezx_defconfig +0 −1
  1318. arch/arm/configs/imx_v6_v7_defconfig +15 −2
  1319. arch/arm/configs/ixp4xx_defconfig +0 −4
  1320. arch/arm/configs/keystone_defconfig +13 −0
  1321. arch/arm/configs/multi_v7_defconfig +8 −10
  1322. arch/arm/configs/omap2plus_defconfig +5 −1
  1323. arch/arm/configs/qcom_defconfig +0 −1
  1324. arch/arm/configs/shmobile_defconfig +11 −7
  1325. arch/arm/configs/sunxi_defconfig +6 −11
  1326. arch/arm/configs/tegra_defconfig +7 −5
  1327. arch/arm/configs/vexpress_defconfig +0 −1
  1328. arch/arm/crypto/Kconfig +3 −2
  1329. arch/arm/crypto/aes-ce-glue.c +1 −3
  1330. arch/arm/crypto/aes-cipher-core.S +65 −23
  1331. arch/arm/crypto/aes-neonbs-glue.c +2 −3
  1332. arch/arm/crypto/ghash-ce-core.S +191 −43
  1333. arch/arm/crypto/ghash-ce-glue.c +21 −3
  1334. arch/arm/include/asm/arch_gicv3.h +34 −0
  1335. arch/arm/include/asm/futex.h +4 −22
  1336. arch/arm/include/asm/kvm_arm.h +0 −1
  1337. arch/arm/include/asm/kvm_emulate.h +19 −5
  1338. arch/arm/include/asm/kvm_host.h +0 −6
  1339. arch/arm/include/asm/smp_scu.h +1 −0
  1340. arch/arm/include/asm/spinlock.h +0 −16
  1341. arch/arm/include/asm/string.h +14 −0
  1342. arch/arm/include/asm/suspend.h +2 −0
  1343. arch/arm/include/asm/traps.h +0 −7
  1344. arch/arm/include/debug/omap2plus.S +1 −108
  1345. arch/arm/kernel/armksyms.c +2 −0
  1346. arch/arm/kernel/cpuidle.c +2 −2
  1347. arch/arm/kernel/devtree.c +2 −3
  1348. arch/arm/kernel/entry-armv.S +2 −0
  1349. arch/arm/kernel/entry-common.S +42 −13
  1350. arch/arm/kernel/head.S +2 −0
  1351. arch/arm/kernel/hyp-stub.S +1 −0
  1352. arch/arm/kernel/iwmmxt.S +1 −0
  1353. arch/arm/kernel/signal.c +7 −0
  1354. arch/arm/kernel/sleep.S +1 −0
  1355. arch/arm/kernel/stacktrace.c +1 −0
  1356. arch/arm/kernel/topology.c +1 −2
  1357. arch/arm/kvm/handle_exit.c +1 −1
  1358. arch/arm/lib/memset.S +18 −6
  1359. arch/arm/mach-at91/Kconfig +5 −1
  1360. arch/arm/mach-at91/pm.c +12 −0
  1361. arch/arm/mach-davinci/board-da850-evm.c +1 −1
  1362. arch/arm/mach-davinci/board-dm355-evm.c +1 −1
  1363. arch/arm/mach-davinci/board-dm355-leopard.c +1 −1
  1364. arch/arm/mach-davinci/board-dm365-evm.c +1 −1
  1365. arch/arm/mach-davinci/board-dm644x-evm.c +1 −1
  1366. arch/arm/mach-davinci/board-dm646x-evm.c +1 −1
  1367. arch/arm/mach-davinci/board-sffsdr.c +1 −1
  1368. arch/arm/mach-dove/dove-db-setup.c +1 −1
  1369. arch/arm/mach-ep93xx/clock.c +8 −0
  1370. arch/arm/mach-ep93xx/core.c +24 −0
  1371. arch/arm/mach-ep93xx/edb93xx.c +1 −0
  1372. arch/arm/mach-ep93xx/include/mach/platform.h +1 −0
  1373. arch/arm/mach-ep93xx/snappercl15.c +1 −1
  1374. arch/arm/mach-ep93xx/soc.h +1 −0
  1375. arch/arm/mach-ep93xx/ts72xx.c +1 −1
  1376. arch/arm/mach-exynos/sleep.S +1 −0
  1377. arch/arm/mach-exynos/suspend.c +3 −4
  1378. arch/arm/mach-gemini/Kconfig +5 −0
  1379. arch/arm/mach-hisi/Kconfig +1 −0
  1380. arch/arm/mach-hisi/platsmp.c +1 −1
  1381. arch/arm/mach-imx/gpc.c +2 −2
  1382. arch/arm/mach-imx/mach-imx27_visstrim_m10.c +17 −27
  1383. arch/arm/mach-imx/mach-mx31moboard.c +6 −6
  1384. arch/arm/mach-imx/mach-qong.c +1 −1
  1385. arch/arm/mach-ixp4xx/ixdp425-setup.c +1 −1
  1386. arch/arm/mach-mediatek/mediatek.c +2 −0
  1387. arch/arm/mach-mediatek/platsmp.c +1 −0
  1388. arch/arm/mach-mmp/aspenite.c +1 −1
  1389. arch/arm/mach-mvebu/Kconfig +2 −0
  1390. arch/arm/mach-mvebu/kirkwood.c +1 −2
  1391. arch/arm/mach-omap1/board-fsample.c +1 −1
  1392. arch/arm/mach-omap1/board-h2-mmc.c +1 −1
  1393. arch/arm/mach-omap1/board-h2.c +2 −2
  1394. arch/arm/mach-omap1/board-h3-mmc.c +1 −1
  1395. arch/arm/mach-omap1/board-h3.c +2 −2
  1396. arch/arm/mach-omap1/board-nand.c +1 −1
  1397. arch/arm/mach-omap1/board-nokia770.c +2 −2
  1398. arch/arm/mach-omap1/board-osk.c +1 −1
  1399. arch/arm/mach-omap1/board-perseus2.c +1 −1
  1400. arch/arm/mach-omap2/Kconfig +1 −0
  1401. arch/arm/mach-omap2/board-generic.c +1 −0
  1402. arch/arm/mach-omap2/common.h +1 −1
  1403. arch/arm/mach-omap2/dma.c +5 −143
  1404. arch/arm/mach-omap2/id.c +9 −0
  1405. arch/arm/mach-omap2/omap-smp.c +2 −2
  1406. arch/arm/mach-omap2/omap-wakeupgen.c +2 −2
  1407. arch/arm/mach-omap2/omap_device.c +0 −10
  1408. arch/arm/mach-omap2/omap_hwmod.c +2 −2
  1409. arch/arm/mach-omap2/omap_hwmod_7xx_data.c +9 −2
  1410. arch/arm/mach-omap2/omap_twl.c +1 −1
  1411. arch/arm/mach-omap2/pdata-quirks.c +31 −0
  1412. arch/arm/mach-omap2/powerdomains7xx_data.c +32 −1
  1413. arch/arm/mach-omap2/prm3xxx.c +1 −1
  1414. arch/arm/mach-omap2/prm44xx.c +2 −2
  1415. arch/arm/mach-omap2/sleep34xx.S +2 −0
  1416. arch/arm/mach-omap2/sleep44xx.S +1 −0
  1417. arch/arm/mach-omap2/soc.h +5 −0
  1418. arch/arm/mach-orion5x/db88f5281-setup.c +1 −1
  1419. arch/arm/mach-orion5x/kurobox_pro-setup.c +1 −1
  1420. arch/arm/mach-orion5x/ts209-setup.c +1 −1
  1421. arch/arm/mach-orion5x/ts78xx-setup.c +1 −1
  1422. arch/arm/mach-pxa/balloon3.c +1 −1
  1423. arch/arm/mach-pxa/em-x270.c +1 −1
  1424. arch/arm/mach-pxa/eseries.c +1 −1
  1425. arch/arm/mach-pxa/mioa701_bootresume.S +2 −0
  1426. arch/arm/mach-pxa/palmtx.c +1 −1
  1427. arch/arm/mach-pxa/raumfeld.c +1 −1
  1428. arch/arm/mach-pxa/tosa.c +1 −1
  1429. arch/arm/mach-rockchip/Kconfig +2 −0
  1430. arch/arm/mach-rockchip/platsmp.c +3 −3
  1431. arch/arm/mach-rockchip/sleep.S +1 −1
  1432. arch/arm/mach-s3c24xx/Kconfig +1 −1
  1433. arch/arm/mach-s3c24xx/common-smdk.c +1 −1
  1434. arch/arm/mach-s3c24xx/common.c +1 −1
  1435. arch/arm/mach-s3c24xx/include/mach/regs-clock.h +2 −2
  1436. arch/arm/mach-s3c24xx/mach-anubis.c +1 −1
  1437. arch/arm/mach-s3c24xx/mach-at2440evb.c +1 −1
  1438. arch/arm/mach-s3c24xx/mach-bast.c +1 −1
  1439. arch/arm/mach-s3c24xx/mach-gta02.c +1 −1
  1440. arch/arm/mach-s3c24xx/mach-jive.c +1 −1
  1441. arch/arm/mach-s3c24xx/mach-mini2440.c +2 −2
  1442. arch/arm/mach-s3c24xx/mach-osiris-dvs.c +1 −1
  1443. arch/arm/mach-s3c24xx/mach-osiris.c +2 −2
  1444. arch/arm/mach-s3c24xx/mach-qt2410.c +1 −1
  1445. arch/arm/mach-s3c24xx/mach-rx3715.c +1 −1
  1446. arch/arm/mach-s3c24xx/mach-smdk2443.c +0 −8
  1447. arch/arm/mach-s3c24xx/mach-vstms.c +1 −1
  1448. arch/arm/mach-s3c24xx/sleep.S +6 −5
  1449. arch/arm/mach-shmobile/Kconfig +0 −4
  1450. arch/arm/mach-shmobile/pm-rcar-gen2.c +30 −3
  1451. arch/arm/mach-shmobile/pm-rmobile.c +3 −4
  1452. arch/arm/mach-shmobile/setup-rcar-gen2.c +17 −4
  1453. arch/arm/mach-tegra/Kconfig +2 −0
  1454. arch/arm/mach-tegra/cpuidle-tegra114.c +2 −2
  1455. arch/arm/mach-tegra/tegra.c +1 −28
  1456. arch/arm/mm/cache-v4wb.S +1 −0
  1457. arch/arm/mm/fault.c +4 −1
  1458. arch/arm/mm/proc-v7-3level.S +1 −2
  1459. arch/arm/mm/proc-xscale.S +1 −0
  1460. arch/arm/net/bpf_jit_32.c +1663 −785
  1461. arch/arm/net/bpf_jit_32.h +83 −25
  1462. arch/arm/plat-samsung/include/plat/map-s3c.h +1 −1
  1463. arch/arm64/Kconfig +13 −0
  1464. arch/arm64/Kconfig.platforms +7 −0
  1465. arch/arm64/Makefile +5 −0
  1466. arch/arm64/boot/dts/allwinner/Makefile +2 −0
  1467. arch/arm64/boot/dts/allwinner/axp803.dtsi +150 −0
  1468. arch/arm64/boot/dts/allwinner/sun50i-a64-bananapi-m64.dts +132 −20
  1469. arch/arm64/boot/dts/allwinner/sun50i-a64-nanopi-a64.dts +207 −0
  1470. arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +199 −0
  1471. arch/arm64/boot/dts/allwinner/sun50i-a64-pine64-plus.dts +0 −15
  1472. arch/arm64/boot/dts/allwinner/sun50i-a64-pine64.dts +112 −16
  1473. arch/arm64/boot/dts/allwinner/sun50i-a64-sopine-baseboard.dts +22 −15
  1474. arch/arm64/boot/dts/allwinner/sun50i-a64-sopine.dtsi +86 −0
  1475. arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi +9 −20
  1476. arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi-neo2.dts +0 −17
  1477. arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-pc2.dts +0 −17
  1478. arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts +0 −17
  1479. arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +3 −0
  1480. arch/arm64/boot/dts/amlogic/meson-gx-p23x-q20x.dtsi +7 −0
  1481. arch/arm64/boot/dts/amlogic/meson-gx.dtsi +30 −16
  1482. arch/arm64/boot/dts/amlogic/meson-gxbb-nanopi-k2.dts +58 −0
  1483. arch/arm64/boot/dts/amlogic/meson-gxbb-nexbox-a95x.dts +7 −0
  1484. arch/arm64/boot/dts/amlogic/meson-gxbb-p20x.dtsi +10 −0
  1485. arch/arm64/boot/dts/amlogic/meson-gxbb-wetek-play2.dts +6 −0
  1486. arch/arm64/boot/dts/amlogic/meson-gxbb.dtsi +34 −0
  1487. arch/arm64/boot/dts/amlogic/meson-gxl-s905d-p230.dts +7 −1
  1488. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts +63 −0
  1489. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts +64 −0
  1490. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-nexbox-a95x.dts +7 −0
  1491. arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dts +7 −0
  1492. arch/arm64/boot/dts/amlogic/meson-gxl.dtsi +35 −0
  1493. arch/arm64/boot/dts/amlogic/meson-gxm-nexbox-a1.dts +7 −0
  1494. arch/arm64/boot/dts/amlogic/meson-gxm.dtsi +4 −0
  1495. arch/arm64/boot/dts/apm/apm-shadowcat.dtsi +2 −0
  1496. arch/arm64/boot/dts/apm/apm-storm.dtsi +5 −0
  1497. arch/arm64/boot/dts/arm/foundation-v8.dtsi +1 −1
  1498. arch/arm64/boot/dts/arm/juno-base.dtsi +7 −7
  1499. arch/arm64/boot/dts/arm/rtsm_ve-motherboard.dtsi +1 −1
  1500. arch/arm64/boot/dts/broadcom/Makefile +2 −2
  1501. arch/arm64/boot/dts/broadcom/bcm2835-rpi.dtsi +0 −1
  1502. arch/arm64/boot/dts/broadcom/bcm2837-rpi-3-b.dts +1 −41
  1503. arch/arm64/boot/dts/broadcom/bcm283x-rpi-smsc9514.dtsi +0 −1
  1504. arch/arm64/boot/dts/broadcom/bcm283x-rpi-usb-host.dtsi +0 −1
  1505. arch/arm64/boot/dts/broadcom/bcm283x.dtsi +0 −1
  1506. arch/arm64/boot/dts/broadcom/northstar2/Makefile +6 −0
  1507. arch/arm64/boot/dts/broadcom/northstar2/ns2-clock.dtsi +0 −0
  1508. arch/arm64/boot/dts/broadcom/northstar2/ns2-svk.dts +0 −0
  1509. arch/arm64/boot/dts/broadcom/northstar2/ns2-xmc.dts +0 −0
  1510. arch/arm64/boot/dts/broadcom/northstar2/ns2.dtsi +0 −0
  1511. arch/arm64/boot/dts/broadcom/stingray/bcm958742-base.dtsi +78 −0
  1512. arch/arm64/boot/dts/broadcom/stingray/bcm958742k.dts +4 −0
  1513. arch/arm64/boot/dts/broadcom/stingray/bcm958742t.dts +4 −0
  1514. arch/arm64/boot/dts/broadcom/stingray/stingray-fs4.dtsi +118 −0
  1515. arch/arm64/boot/dts/broadcom/stingray/stingray-sata.dtsi +278 −0
  1516. arch/arm64/boot/dts/broadcom/stingray/stingray.dtsi +136 −0
  1517. arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +2 −17
  1518. arch/arm64/boot/dts/exynos/exynos5433.dtsi +2 −2
  1519. arch/arm64/boot/dts/exynos/exynos7-espresso.dts +0 −2
  1520. arch/arm64/boot/dts/freescale/fsl-ls1012a.dtsi +17 −0
  1521. arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi +6 −6
  1522. arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi +31 −0
  1523. arch/arm64/boot/dts/freescale/fsl-ls1088a-rdb.dts +1 −1
  1524. arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +65 −0
  1525. arch/arm64/boot/dts/freescale/fsl-ls2080a-qds.dts +0 −5
  1526. arch/arm64/boot/dts/freescale/fsl-ls2080a-rdb.dts +0 −5
  1527. arch/arm64/boot/dts/freescale/fsl-ls2080a-simu.dts +0 −5
  1528. arch/arm64/boot/dts/freescale/fsl-ls2080a.dtsi +17 −0
  1529. arch/arm64/boot/dts/freescale/fsl-ls2088a-qds.dts +0 −5
  1530. arch/arm64/boot/dts/freescale/fsl-ls2088a-rdb.dts +0 −5
  1531. arch/arm64/boot/dts/freescale/fsl-ls2088a.dtsi +17 −0
  1532. arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +51 −0
  1533. arch/arm64/boot/dts/hisilicon/hi3660-hikey960.dts +36 −1
  1534. arch/arm64/boot/dts/hisilicon/hi3660.dtsi +130 −0
  1535. arch/arm64/boot/dts/hisilicon/hi6220.dtsi +8 −1
  1536. arch/arm64/boot/dts/hisilicon/hip07-d05.dts +4 −0
  1537. arch/arm64/boot/dts/hisilicon/hip07.dtsi +22 −0
  1538. arch/arm64/boot/dts/marvell/Makefile +1 −0
  1539. arch/arm64/boot/dts/marvell/armada-3720-espressobin.dts +30 −0
  1540. arch/arm64/boot/dts/marvell/armada-37xx.dtsi +10 −1
  1541. arch/arm64/boot/dts/marvell/armada-7040-db.dts +39 −0
  1542. arch/arm64/boot/dts/marvell/armada-8040-db.dts +65 −0
  1543. arch/arm64/boot/dts/marvell/armada-8040-mcbin.dts +122 −2
  1544. arch/arm64/boot/dts/marvell/armada-8080-db.dts +67 −0
  1545. arch/arm64/boot/dts/marvell/armada-8080.dtsi +53 −0
  1546. arch/arm64/boot/dts/marvell/armada-ap806.dtsi +2 −2
  1547. arch/arm64/boot/dts/marvell/armada-ap810-ap0-octa-core.dtsi +104 −0
  1548. arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi +163 −0
  1549. arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi +63 −20
  1550. arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi +63 −20
  1551. arch/arm64/boot/dts/mediatek/Makefile +2 −0
  1552. arch/arm64/boot/dts/mediatek/mt2712-evb.dts +32 −0
  1553. arch/arm64/boot/dts/mediatek/mt2712e.dtsi +171 −0
  1554. arch/arm64/boot/dts/mediatek/mt6797.dtsi +5 −7
  1555. arch/arm64/boot/dts/mediatek/mt7622-rfb1.dts +27 −0
  1556. arch/arm64/boot/dts/mediatek/mt7622.dtsi +110 −0
  1557. arch/arm64/boot/dts/qcom/Makefile +1 −0
  1558. arch/arm64/boot/dts/qcom/apq8016-sbc-pmic-pins.dtsi +1 −0
  1559. arch/arm64/boot/dts/qcom/apq8016-sbc.dtsi +7 −10
  1560. arch/arm64/boot/dts/qcom/apq8096-db820c-pmic-pins.dtsi +24 −0
  1561. arch/arm64/boot/dts/qcom/apq8096-db820c.dtsi +198 −0
  1562. arch/arm64/boot/dts/qcom/ipq8074-hk01.dts +52 −0
  1563. arch/arm64/boot/dts/qcom/ipq8074.dtsi +194 −0
  1564. arch/arm64/boot/dts/qcom/msm8916.dtsi +119 −1
  1565. arch/arm64/boot/dts/qcom/msm8996.dtsi +314 −0
  1566. arch/arm64/boot/dts/qcom/pmi8994.dtsi +17 −0
  1567. arch/arm64/boot/dts/renesas/Makefile +1 −0
  1568. arch/arm64/boot/dts/renesas/r8a7795-es1-h3ulcb.dts +0 −2
  1569. arch/arm64/boot/dts/renesas/r8a7795-es1-salvator-x.dts +0 −2
  1570. arch/arm64/boot/dts/renesas/r8a7795-es1.dtsi +8 −1
  1571. arch/arm64/boot/dts/renesas/r8a7795-h3ulcb.dts +14 −2
  1572. arch/arm64/boot/dts/renesas/r8a7795-salvator-x.dts +0 −2
  1573. arch/arm64/boot/dts/renesas/r8a7795-salvator-xs.dts +4 −4
  1574. arch/arm64/boot/dts/renesas/r8a7795.dtsi +313 −1
  1575. arch/arm64/boot/dts/renesas/r8a7796-m3ulcb.dts +12 −2
  1576. arch/arm64/boot/dts/renesas/r8a7796-salvator-x.dts +29 −2
  1577. arch/arm64/boot/dts/renesas/r8a7796.dtsi +403 −11
  1578. arch/arm64/boot/dts/renesas/r8a77995-draak.dts +46 −0
  1579. arch/arm64/boot/dts/renesas/r8a77995.dtsi +155 −0
  1580. arch/arm64/boot/dts/renesas/salvator-common.dtsi +1 −5
  1581. arch/arm64/boot/dts/renesas/salvator-xs.dtsi +10 −0
  1582. arch/arm64/boot/dts/renesas/ulcb.dtsi +51 −0
  1583. arch/arm64/boot/dts/rockchip/Makefile +3 −0
  1584. arch/arm64/boot/dts/rockchip/rk3328-evb.dts +181 −0
  1585. arch/arm64/boot/dts/rockchip/rk3328-rock64.dts +333 −0
  1586. arch/arm64/boot/dts/rockchip/rk3328.dtsi +437 −0
  1587. arch/arm64/boot/dts/rockchip/rk3368-evb.dtsi +0 −1
  1588. arch/arm64/boot/dts/rockchip/rk3368-geekbox.dts +0 −1
  1589. arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts +0 −2
  1590. arch/arm64/boot/dts/rockchip/rk3368-px5-evb.dts +0 −3
  1591. arch/arm64/boot/dts/rockchip/rk3368-r88.dts +0 −2
  1592. arch/arm64/boot/dts/rockchip/rk3368.dtsi +138 −2
  1593. arch/arm64/boot/dts/rockchip/rk3399-evb.dts +1 −1
  1594. arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +14 −2
  1595. arch/arm64/boot/dts/rockchip/rk3399-gru-kevin.dts +44 −0
  1596. arch/arm64/boot/dts/rockchip/rk3399-gru.dtsi +88 −44
  1597. arch/arm64/boot/dts/rockchip/rk3399-op1-opp.dtsi +33 −0
  1598. arch/arm64/boot/dts/rockchip/rk3399-opp.dtsi +33 −0
  1599. arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts +228 −0
  1600. arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +547 −0
  1601. arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts +240 −0
  1602. arch/arm64/boot/dts/rockchip/rk3399-sapphire.dtsi +644 −0
  1603. arch/arm64/boot/dts/rockchip/rk3399.dtsi +278 −14
  1604. arch/arm64/boot/dts/socionext/Makefile +2 −1
  1605. arch/arm64/boot/dts/socionext/uniphier-ld11-global.dts +5 −1
  1606. arch/arm64/boot/dts/socionext/uniphier-ld11-ref.dts +3 −3
  1607. arch/arm64/boot/dts/socionext/uniphier-ld11.dtsi +34 −1
  1608. arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts +5 −1
  1609. arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts +3 −3
  1610. arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi +35 −2
  1611. arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi +0 −1
  1612. arch/arm64/boot/dts/socionext/uniphier-pinctrl.dtsi +1 −0
  1613. arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts +62 −0
  1614. arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +367 −0
  1615. arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi +0 −1
  1616. arch/arm64/boot/dts/socionext/uniphier-ref-daughter.dtsi +1 −0
  1617. arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi +0 −1
  1618. arch/arm64/boot/dts/socionext/uniphier-support-card.dtsi +1 −0
  1619. arch/arm64/boot/dts/xilinx/zynqmp-ep108-clk.dtsi +49 −1
  1620. arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts +12 −6
  1621. arch/arm64/boot/dts/xilinx/zynqmp.dtsi +260 −17
  1622. arch/arm64/boot/dts/zte/Makefile +1 −0
  1623. arch/arm64/boot/dts/zte/zx296718-evb.dts +60 −8
  1624. arch/arm64/boot/dts/zte/zx296718-pcbox.dts +143 −0
  1625. arch/arm64/boot/dts/zte/zx296718.dtsi +169 −2
  1626. arch/arm64/configs/defconfig +39 −2
  1627. arch/arm64/crypto/Kconfig +16 −6
  1628. arch/arm64/crypto/aes-ce-ccm-core.S +15 −15
  1629. arch/arm64/crypto/aes-ce-ccm-glue.c +139 −35
  1630. arch/arm64/crypto/aes-ce-cipher.c +33 −22
  1631. arch/arm64/crypto/aes-ce.S +6 −6
  1632. arch/arm64/crypto/aes-cipher-core.S +107 −45
  1633. arch/arm64/crypto/aes-ctr-fallback.h +53 −0
  1634. arch/arm64/crypto/aes-glue.c +45 −18
  1635. arch/arm64/crypto/aes-neonbs-glue.c +45 −8
  1636. arch/arm64/crypto/chacha20-neon-glue.c +3 −2
  1637. arch/arm64/crypto/crc32-ce-glue.c +6 −5
  1638. arch/arm64/crypto/crct10dif-ce-glue.c +9 −4
  1639. arch/arm64/crypto/ghash-ce-core.S +383 −18
  1640. arch/arm64/crypto/ghash-ce-glue.c +482 −35
  1641. arch/arm64/crypto/sha1-ce-glue.c +14 −4
  1642. arch/arm64/crypto/sha2-ce-glue.c +26 −4
  1643. arch/arm64/crypto/sha256-glue.c +1 −0
  1644. arch/arm64/include/asm/Kbuild +0 −1
  1645. arch/arm64/include/asm/arch_gicv3.h +7 −0
  1646. arch/arm64/include/asm/arch_timer.h +2 −2
  1647. arch/arm64/include/asm/asm-bug.h +54 −0
  1648. arch/arm64/include/asm/assembler.h +24 −1
  1649. arch/arm64/include/asm/bug.h +3 −32
  1650. arch/arm64/include/asm/cacheflush.h +3 −1
  1651. arch/arm64/include/asm/cpucaps.h +2 −1
  1652. arch/arm64/include/asm/efi.h +14 −2
  1653. arch/arm64/include/asm/elf.h +2 −4
  1654. arch/arm64/include/asm/esr.h +31 −11
  1655. arch/arm64/include/asm/fpsimd.h +3 −13
  1656. arch/arm64/include/asm/fpsimdmacros.h +0 −56
  1657. arch/arm64/include/asm/futex.h +4 −22
  1658. arch/arm64/include/asm/hugetlb.h +8 −1
  1659. arch/arm64/include/asm/irq.h +0 −42
  1660. arch/arm64/include/asm/kvm_emulate.h +19 −5
  1661. arch/arm64/include/asm/kvm_host.h +0 −6
  1662. arch/arm64/include/asm/kvm_mmu.h +9 −12
  1663. arch/arm64/include/asm/linkage.h +2 −2
  1664. arch/arm64/include/asm/memory.h +53 −0
  1665. arch/arm64/include/asm/mmu.h +2 −0
  1666. arch/arm64/include/asm/neon.h +13 −3
  1667. arch/arm64/include/asm/numa.h +0 −3
  1668. arch/arm64/include/asm/page-def.h +34 −0
  1669. arch/arm64/include/asm/page.h +1 −11
  1670. arch/arm64/include/asm/pgtable-prot.h +8 −10
  1671. arch/arm64/include/asm/pgtable.h +41 −62
  1672. arch/arm64/include/asm/processor.h +2 −2
  1673. arch/arm64/include/asm/ptrace.h +30 −1
  1674. arch/arm64/include/asm/signal32.h +0 −2
  1675. arch/arm64/include/asm/simd.h +56 −0
  1676. arch/arm64/include/asm/smp.h +1 −1
  1677. arch/arm64/include/asm/spinlock.h +7 −62
  1678. arch/arm64/include/asm/stacktrace.h +59 −2
  1679. arch/arm64/include/asm/string.h +4 −0
  1680. arch/arm64/include/asm/sysreg.h +1 −0
  1681. arch/arm64/include/asm/thread_info.h +7 −10
  1682. arch/arm64/include/asm/traps.h +5 −7
  1683. arch/arm64/include/asm/uaccess.h +15 −0
  1684. arch/arm64/include/uapi/asm/hwcap.h +1 −0
  1685. arch/arm64/kernel/acpi.c +2 −2
  1686. arch/arm64/kernel/asm-offsets.c +1 −0
  1687. arch/arm64/kernel/cpufeature.c +13 −0
  1688. arch/arm64/kernel/cpuinfo.c +1 −0
  1689. arch/arm64/kernel/entry-fpsimd.S +0 −24
  1690. arch/arm64/kernel/entry.S +183 −100
  1691. arch/arm64/kernel/fpsimd.c +136 −38
  1692. arch/arm64/kernel/head.S +13 −10
  1693. arch/arm64/kernel/hibernate.c +2 −2
  1694. arch/arm64/kernel/irq.c +38 −2
  1695. arch/arm64/kernel/kaslr.c +11 −9
  1696. arch/arm64/kernel/machine_kexec.c +1 −1
  1697. arch/arm64/kernel/pci.c +0 −17
  1698. arch/arm64/kernel/perf_callchain.c +0 −1
  1699. arch/arm64/kernel/perf_event.c +85 −123
  1700. arch/arm64/kernel/probes/uprobes.c +1 −1
  1701. arch/arm64/kernel/process.c +11 −4
  1702. arch/arm64/kernel/ptrace.c +3 −2
  1703. arch/arm64/kernel/return_address.c +0 −1
  1704. arch/arm64/kernel/signal.c +10 −5
  1705. arch/arm64/kernel/signal32.c +10 −15
  1706. arch/arm64/kernel/smp.c +13 −3
  1707. arch/arm64/kernel/stacktrace.c +23 −55
  1708. arch/arm64/kernel/time.c +0 −1
  1709. arch/arm64/kernel/traps.c +49 −30
  1710. arch/arm64/kernel/vdso.c +15 −0
  1711. arch/arm64/kernel/vmlinux.lds.S +1 −17
  1712. arch/arm64/kvm/handle_exit.c +1 −1
  1713. arch/arm64/kvm/hyp/s2-setup.c +1 −1
  1714. arch/arm64/kvm/vgic-sys-reg-v3.c +3 −20
  1715. arch/arm64/lib/Makefile +2 −0
  1716. arch/arm64/lib/uaccess_flushcache.c +47 −0
  1717. arch/arm64/mm/cache.S +28 −9
  1718. arch/arm64/mm/dma-mapping.c +2 −2
  1719. arch/arm64/mm/fault.c +62 −20
  1720. arch/arm64/mm/flush.c +16 −0
  1721. arch/arm64/mm/hugetlbpage.c +230 −84
  1722. arch/arm64/net/bpf_jit.h +4 −0
  1723. arch/arm64/net/bpf_jit_comp.c +20 −0
  1724. arch/blackfin/include/asm/bfin_twi.h +133 −1
  1725. arch/blackfin/include/asm/spinlock.h +0 −5
  1726. arch/blackfin/include/uapi/asm/siginfo.h +19 −11
  1727. arch/blackfin/kernel/debug-mmrs.c +0 −1
  1728. arch/blackfin/kernel/module.c +21 −18
  1729. arch/blackfin/mach-bf537/boards/dnp5370.c +1 −1
  1730. arch/blackfin/mach-bf537/boards/stamp.c +1 −1
  1731. arch/blackfin/mach-bf561/boards/acvilon.c +1 −1
  1732. arch/c6x/configs/dsk6455_defconfig +0 −2
  1733. arch/c6x/configs/evmc6457_defconfig +0 −2
  1734. arch/c6x/configs/evmc6472_defconfig +0 −2
  1735. arch/c6x/configs/evmc6474_defconfig +0 −2
  1736. arch/c6x/configs/evmc6678_defconfig +0 −2
  1737. arch/c6x/include/asm/processor.h +0 −3
  1738. arch/c6x/platforms/megamod-pic.c +11 −11
  1739. arch/c6x/platforms/plldata.c +2 −2
  1740. arch/c6x/platforms/timer64.c +4 −4
  1741. arch/cris/arch-v32/drivers/mach-a3/nandflash.c +1 −1
  1742. arch/cris/arch-v32/drivers/mach-fs/nandflash.c +1 −1
  1743. arch/cris/arch-v32/drivers/pci/bios.c +0 −4
  1744. arch/cris/arch-v32/mach-a3/arbiter.c +2 −2
  1745. arch/cris/arch-v32/mach-fs/arbiter.c +2 −2
  1746. arch/cris/kernel/traps.c +3 −3
  1747. arch/frv/Kconfig +3 −0
  1748. arch/frv/include/asm/futex.h +2 −1
  1749. arch/frv/include/asm/processor.h +0 −4
  1750. arch/frv/include/uapi/asm/siginfo.h +1 −1
  1751. arch/frv/include/uapi/asm/socket.h +2 −0
  1752. arch/frv/kernel/futex.c +4 −23
  1753. arch/h8300/Kconfig +3 −0
  1754. arch/h8300/include/asm/traps.h +3 −3
  1755. arch/hexagon/include/asm/atomic.h +2 −0
  1756. arch/hexagon/include/asm/futex.h +4 −34
  1757. arch/hexagon/include/asm/spinlock.h +0 −5
  1758. arch/ia64/Kconfig.debug +0 −5
  1759. arch/ia64/include/asm/acpi.h +0 −2
  1760. arch/ia64/include/asm/futex.h +4 −21
  1761. arch/ia64/include/asm/spinlock.h +0 −21
  1762. arch/ia64/include/uapi/asm/siginfo.h +12 −9
  1763. arch/ia64/include/uapi/asm/socket.h +2 −0
  1764. arch/ia64/kernel/acpi.c +3 −3
  1765. arch/ia64/kernel/efi.c +2 −2
  1766. arch/ia64/kernel/signal.c +8 −9
  1767. arch/ia64/kernel/traps.c +2 −2
  1768. arch/ia64/pci/pci.c +0 −7
  1769. arch/m32r/configs/m32104ut_defconfig +0 −4
  1770. arch/m32r/configs/m32700ut.smp_defconfig +0 −3
  1771. arch/m32r/configs/m32700ut.up_defconfig +0 −3
  1772. arch/m32r/configs/mappi.nommu_defconfig +0 −2
  1773. arch/m32r/configs/mappi.smp_defconfig +0 −4
  1774. arch/m32r/configs/mappi.up_defconfig +0 −4
  1775. arch/m32r/configs/mappi2.opsp_defconfig +0 −2
  1776. arch/m32r/configs/mappi2.vdec2_defconfig +0 −2
  1777. arch/m32r/configs/mappi3.smp_defconfig +0 −4
  1778. arch/m32r/configs/oaks32r_defconfig +0 −2
  1779. arch/m32r/configs/opsput_defconfig +0 −2
  1780. arch/m32r/configs/usrv_defconfig +0 −5
  1781. arch/m32r/include/asm/flat.h +2 −1
  1782. arch/m32r/include/asm/processor.h +0 −8
  1783. arch/m32r/include/asm/spinlock.h +0 −5
  1784. arch/m32r/include/uapi/asm/socket.h +2 −0
  1785. arch/m68k/Kconfig +3 −0
  1786. arch/m68k/coldfire/clk.c +3 −0
  1787. arch/m68k/coldfire/m5441x.c +0 −37
  1788. arch/m68k/coldfire/pci.c +32 −4
  1789. arch/m68k/configs/amiga_defconfig +5 −2
  1790. arch/m68k/configs/apollo_defconfig +5 −2
  1791. arch/m68k/configs/atari_defconfig +6 −2
  1792. arch/m68k/configs/bvme6000_defconfig +5 −2
  1793. arch/m68k/configs/hp300_defconfig +5 −2
  1794. arch/m68k/configs/mac_defconfig +5 −2
  1795. arch/m68k/configs/multi_defconfig +5 −2
  1796. arch/m68k/configs/mvme147_defconfig +5 −2
  1797. arch/m68k/configs/mvme16x_defconfig +5 −2
  1798. arch/m68k/configs/q40_defconfig +5 −2
  1799. arch/m68k/configs/sun3_defconfig +5 −2
  1800. arch/m68k/configs/sun3x_defconfig +5 −2
  1801. arch/m68k/include/asm/asm-prototypes.h +5 −0
  1802. arch/m68k/include/asm/page.h +1 −1
  1803. arch/m68k/mac/misc.c +14 −2
  1804. arch/metag/Kconfig +1 −0
  1805. arch/metag/include/asm/atomic_lock1.h +2 −0
  1806. arch/metag/include/asm/dma-mapping.h +1 −1
  1807. arch/metag/include/asm/processor.h +0 −3
  1808. arch/metag/include/asm/spinlock.h +0 −5
  1809. arch/metag/include/asm/topology.h +0 −1
  1810. arch/microblaze/Kconfig +16 −0
  1811. arch/microblaze/Makefile +2 −0
  1812. arch/microblaze/include/asm/flat.h +1 −1
  1813. arch/microblaze/include/asm/futex.h +4 −34
  1814. arch/microblaze/include/asm/pci.h +0 −3
  1815. arch/microblaze/kernel/timer.c +1 −1
  1816. arch/microblaze/pci/pci-common.c +7 −152
  1817. arch/mips/Kconfig +5 −16
  1818. arch/mips/Makefile +27 −4
  1819. arch/mips/alchemy/devboards/db1200.c +37 −29
  1820. arch/mips/alchemy/devboards/db1300.c +18 −15
  1821. arch/mips/alchemy/devboards/db1550.c +1 −1
  1822. arch/mips/alchemy/devboards/db1xxx.c +2 −0
  1823. arch/mips/ar7/clock.c +3 −0
  1824. arch/mips/ath79/clock.c +4 −5
  1825. arch/mips/ath79/pci.c +6 −6
  1826. arch/mips/bcm63xx/clk.c +3 −0
  1827. arch/mips/boot/Makefile +11 −5
  1828. arch/mips/boot/dts/Makefile +1 −0
  1829. arch/mips/boot/dts/ingenic/ci20.dts +37 −0
  1830. arch/mips/boot/dts/ingenic/jz4780.dtsi +11 −0
  1831. arch/mips/boot/dts/ni/169445.dts +100 −0
  1832. arch/mips/boot/dts/ni/Makefile +7 −0
  1833. arch/mips/boot/dts/ralink/Makefile +2 −0
  1834. arch/mips/boot/dts/ralink/mt7628a.dtsi +126 −0
  1835. arch/mips/boot/dts/ralink/omega2p.dts +18 −0
  1836. arch/mips/boot/dts/ralink/vocore2.dts +18 −0
  1837. arch/mips/cavium-octeon/executive/Makefile +1 −1
  1838. arch/mips/cavium-octeon/executive/cvmx-boot-vector.c +167 −0
  1839. arch/mips/cavium-octeon/executive/cvmx-bootmem.c +85 −0
  1840. arch/mips/cavium-octeon/octeon-irq.c +9 −0
  1841. arch/mips/cavium-octeon/smp.c +9 −5
  1842. arch/mips/configs/cavium_octeon_defconfig +15 −10
  1843. arch/mips/configs/ci20_defconfig +3 −0
  1844. arch/mips/configs/generic/board-ni169445.config +30 −0
  1845. arch/mips/configs/generic/board-sead-3.config +2 −0
  1846. arch/mips/configs/generic_defconfig +1 −2
  1847. arch/mips/configs/gpr_defconfig +0 −4
  1848. arch/mips/configs/lemote2f_defconfig +0 −1
  1849. arch/mips/configs/malta_defconfig +0 −1
  1850. arch/mips/configs/malta_kvm_defconfig +0 −1
  1851. arch/mips/configs/malta_kvm_guest_defconfig +1 −0
  1852. arch/mips/configs/maltasmvp_defconfig +0 −1
  1853. arch/mips/configs/maltasmvp_eva_defconfig +0 −1
  1854. arch/mips/configs/mtx1_defconfig +0 −4
  1855. arch/mips/configs/nlm_xlp_defconfig +0 −1
  1856. arch/mips/configs/nlm_xlr_defconfig +0 −4
  1857. arch/mips/configs/omega2p_defconfig +129 −0
  1858. arch/mips/configs/pistachio_defconfig +5 −2
  1859. arch/mips/configs/vocore2_defconfig +129 −0
  1860. arch/mips/fw/arc/init.c +1 −1
  1861. arch/mips/generic/Kconfig +6 −0
  1862. arch/mips/generic/Platform +4 −0
  1863. arch/mips/generic/board-boston.its.S +22 −0
  1864. arch/mips/generic/board-ni169445.its.S +22 −0
  1865. arch/mips/generic/init.c +5 −0
  1866. arch/mips/generic/irq.c +5 −4
  1867. arch/mips/generic/vmlinux.its.S +0 −25
  1868. arch/mips/include/asm/asm.h +3 −0
  1869. arch/mips/include/asm/bmips.h +2 −2
  1870. arch/mips/include/asm/cpu-info.h +49 −13
  1871. arch/mips/include/asm/cpu-type.h +0 −5
  1872. arch/mips/include/asm/cpu.h +0 −5
  1873. arch/mips/include/asm/floppy.h +2 −2
  1874. arch/mips/include/asm/fpu_emulator.h +117 −1
  1875. arch/mips/include/asm/futex.h +4 −21
  1876. arch/mips/include/asm/io.h +2 −0
  1877. arch/mips/include/asm/kvm_host.h +0 −5
  1878. arch/mips/include/asm/mach-au1x00/cpu-feature-overrides.h +26 −0
  1879. arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h +1 −1
  1880. arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h +3 −3
  1881. arch/mips/include/asm/mach-ip27/topology.h +0 −1
  1882. arch/mips/include/asm/mach-jz4740/jz4740_nand.h +1 −1
  1883. arch/mips/include/asm/mach-lantiq/lantiq.h +0 −2
  1884. arch/mips/include/asm/mach-loongson64/loongson.h +1 −1
  1885. arch/mips/include/asm/mach-loongson64/topology.h +0 −1
  1886. arch/mips/include/asm/mips-boards/maltaint.h +0 −5
  1887. arch/mips/include/asm/mips-cm.h +247 −320
  1888. arch/mips/include/asm/mips-cpc.h +92 −85
  1889. arch/mips/include/asm/mips-cps.h +240 −0
  1890. arch/mips/include/asm/mips-gic.h +347 −0
  1891. arch/mips/include/asm/mipsregs.h +22 −6
  1892. arch/mips/include/asm/module.h +0 −2
  1893. arch/mips/include/asm/netlogic/common.h +1 −1
  1894. arch/mips/include/asm/octeon/cvmx-boot-vector.h +53 −0
  1895. arch/mips/include/asm/octeon/cvmx-bootmem.h +28 −0
  1896. arch/mips/include/asm/octeon/cvmx-ciu-defs.h +10 −0
  1897. arch/mips/include/asm/octeon/cvmx.h +28 −0
  1898. arch/mips/include/asm/octeon/octeon.h +2 −0
  1899. arch/mips/include/asm/smp-ops.h +8 −8
  1900. arch/mips/include/asm/smp.h +5 −5
  1901. arch/mips/include/asm/stackframe.h +168 −112
  1902. arch/mips/include/asm/stacktrace.h +50 −14
  1903. arch/mips/include/asm/topology.h +1 −1
  1904. arch/mips/include/asm/vga.h +7 −0
  1905. arch/mips/include/uapi/asm/inst.h +1 −1
  1906. arch/mips/include/uapi/asm/mman.h +3 −11
  1907. arch/mips/include/uapi/asm/siginfo.h +2 −2
  1908. arch/mips/include/uapi/asm/socket.h +2 −0
  1909. arch/mips/kernel/Makefile +9 −5
  1910. arch/mips/kernel/cps-vec.S +2 −2
  1911. arch/mips/kernel/cpu-probe.c +38 −21
  1912. arch/mips/kernel/elf.c +4 −8
  1913. arch/mips/kernel/genex.S +8 −5
  1914. arch/mips/kernel/idle.c +1 −0
  1915. arch/mips/kernel/mips-cm.c +51 −43
  1916. arch/mips/kernel/mips-cpc.c +8 −9
  1917. arch/mips/kernel/mips-r2-to-r6-emul.c +9 −7
  1918. arch/mips/kernel/octeon_switch.S +6 −5
  1919. arch/mips/kernel/perf_event_mipsxx.c +1 −2
  1920. arch/mips/kernel/pm-cps.c +8 −9
  1921. arch/mips/kernel/proc.c +3 −3
  1922. arch/mips/kernel/process.c +61 −41
  1923. arch/mips/kernel/ptrace.c +4 −6
  1924. arch/mips/kernel/r2300_fpu.S +79 −1
  1925. arch/mips/kernel/r2300_switch.S +0 −81
  1926. arch/mips/kernel/r4k_fpu.S +196 −0
  1927. arch/mips/kernel/r4k_switch.S +0 −203
  1928. arch/mips/kernel/r6000_fpu.S +0 −99
  1929. arch/mips/kernel/scall32-o32.S +0 −11
  1930. arch/mips/kernel/scall64-o32.S +0 −6
  1931. arch/mips/kernel/signal32.c +9 −10
  1932. arch/mips/kernel/smp-bmips.c +6 −4
  1933. arch/mips/kernel/smp-cmp.c +3 −3
  1934. arch/mips/kernel/smp-cps.c +82 −70
  1935. arch/mips/kernel/smp-mt.c +7 −7
  1936. arch/mips/kernel/smp-up.c +3 −2
  1937. arch/mips/kernel/smp.c +16 −14
  1938. arch/mips/kernel/time.c +0 −14
  1939. arch/mips/kernel/traps.c +6 −23
  1940. arch/mips/kernel/unaligned.c +1 −1
  1941. arch/mips/kernel/vdso.c +5 −10
  1942. arch/mips/kvm/mips.c +7 −2
  1943. arch/mips/lantiq/Kconfig +2 −0
  1944. arch/mips/lantiq/falcon/reset.c +5 −18
  1945. arch/mips/lantiq/irq.c +0 −4
  1946. arch/mips/lantiq/prom.c +1 −1
  1947. arch/mips/lantiq/xway/Makefile +1 −3
  1948. arch/mips/lantiq/xway/reset.c +0 −387
  1949. arch/mips/lantiq/xway/sysctrl.c +22 −61
  1950. arch/mips/lantiq/xway/xrx200_phy_fw.c +0 −113
  1951. arch/mips/lib/Makefile +1 −1
  1952. arch/mips/lib/delay.c +1 −0
  1953. arch/mips/lib/iomap_copy.c +42 −0
  1954. arch/mips/loongson64/lemote-2f/clock.c +3 −0
  1955. arch/mips/loongson64/loongson-3/smp.c +9 −7
  1956. arch/mips/math-emu/Makefile +4 −2
  1957. arch/mips/math-emu/cp1emu.c +272 −12
  1958. arch/mips/math-emu/dp_fmax.c +63 −21
  1959. arch/mips/math-emu/dp_fmin.c +64 −22
  1960. arch/mips/math-emu/dp_maddf.c +154 −92
  1961. arch/mips/math-emu/dp_rint.c +89 −0
  1962. arch/mips/math-emu/ieee754.h +2 −0
  1963. arch/mips/math-emu/ieee754int.h +4 −0
  1964. arch/mips/math-emu/ieee754sp.h +4 −0
  1965. arch/mips/math-emu/me-debugfs.c +314 −4
  1966. arch/mips/math-emu/sp_fmax.c +63 −21
  1967. arch/mips/math-emu/sp_fmin.c +64 −22
  1968. arch/mips/math-emu/sp_maddf.c +107 −122
  1969. arch/mips/math-emu/sp_rint.c +90 −0
  1970. arch/mips/mm/c-r4k.c +1 −1
  1971. arch/mips/mm/cache.c +1 −1
  1972. arch/mips/mm/dma-default.c +5 −41
  1973. arch/mips/mm/init.c +1 −0
  1974. arch/mips/mm/mmap.c +1 −0
  1975. arch/mips/mm/sc-mips.c +19 −28
  1976. arch/mips/mm/tlbex-fault.S +4 −3
  1977. arch/mips/mm/tlbex.c +0 −5
  1978. arch/mips/mti-malta/malta-dtshim.c +2 −2
  1979. arch/mips/mti-malta/malta-init.c +1 −2
  1980. arch/mips/mti-malta/malta-int.c +2 −3
  1981. arch/mips/mti-malta/malta-setup.c +2 −2
  1982. arch/mips/mti-malta/malta-time.c +12 −14
  1983. arch/mips/net/ebpf_jit.c +104 −59
  1984. arch/mips/netlogic/common/smp.c +5 −3
  1985. arch/mips/netlogic/xlr/platform-flash.c +1 −1
  1986. arch/mips/oprofile/op_model_mipsxx.c +2 −2
  1987. arch/mips/paravirt/paravirt-smp.c +3 −2
  1988. arch/mips/paravirt/setup.c +1 −1
  1989. arch/mips/pci/fixup-capcella.c +2 −2
  1990. arch/mips/pci/fixup-cobalt.c +4 −4
  1991. arch/mips/pci/fixup-emma2rh.c +2 −2
  1992. arch/mips/pci/fixup-fuloong2e.c +1 −1
  1993. arch/mips/pci/fixup-ip32.c +2 −2
  1994. arch/mips/pci/fixup-jmr3927.c +1 −1
  1995. arch/mips/pci/fixup-lantiq.c +1 −1
  1996. arch/mips/pci/fixup-lemote2f.c +2 −2
  1997. arch/mips/pci/fixup-loongson3.c +1 −1
  1998. arch/mips/pci/fixup-malta.c +2 −2
  1999. arch/mips/pci/fixup-mpc30x.c +3 −3
  2000. arch/mips/pci/fixup-pmcmsp.c +4 −4
  2001. arch/mips/pci/fixup-rbtx4927.c +1 −1
  2002. arch/mips/pci/fixup-rbtx4938.c +1 −1
  2003. arch/mips/pci/fixup-sni.c +6 −6
  2004. arch/mips/pci/fixup-tb0219.c +1 −1
  2005. arch/mips/pci/fixup-tb0226.c +1 −1
  2006. arch/mips/pci/fixup-tb0287.c +1 −1
  2007. arch/mips/pci/pci-alchemy.c +1 −1
  2008. arch/mips/pci/pci-bcm47xx.c +1 −1
  2009. arch/mips/pci/pci-lasat.c +1 −1
  2010. arch/mips/pci/pci-legacy.c +21 −11
  2011. arch/mips/pci/pci-malta.c +3 −3
  2012. arch/mips/pci/pci-mt7620.c +2 −2
  2013. arch/mips/pci/pci-octeon.c +2 −3
  2014. arch/mips/pci/pci-rt2880.c +1 −1
  2015. arch/mips/pci/pci-rt3883.c +6 −7
  2016. arch/mips/pci/pci-tx4938.c +1 −1
  2017. arch/mips/pci/pci-tx4939.c +2 −2
  2018. arch/mips/pci/pci-xlp.c +1 −1
  2019. arch/mips/pci/pci-xlr.c +1 −1
  2020. arch/mips/pci/pcie-octeon.c +1 −2
  2021. arch/mips/pistachio/init.c +1 −2
  2022. arch/mips/pistachio/irq.c +0 −1
  2023. arch/mips/pistachio/time.c +1 −1
  2024. arch/mips/pmcs-msp71xx/msp_smp.c +2 −0
  2025. arch/mips/pnx833x/common/platform.c +1 −1
  2026. arch/mips/ralink/Kconfig +10 −0
  2027. arch/mips/ralink/clk.c +3 −0
  2028. arch/mips/ralink/irq-gic.c +1 −1
  2029. arch/mips/ralink/mt7621.c +2 −3
  2030. arch/mips/rb532/devices.c +1 −1
  2031. arch/mips/sgi-ip27/ip27-smp.c +3 −2
  2032. arch/mips/sibyte/bcm1480/smp.c +3 −2
  2033. arch/mips/sibyte/common/cfe.c +2 −2
  2034. arch/mips/sibyte/sb1250/smp.c +3 −2
  2035. arch/mips/tools/generic-board-config.sh +90 −0
  2036. arch/mips/txx9/generic/pci.c +6 −2
  2037. arch/mips/vdso/gettimeofday.c +3 −5
  2038. arch/mips/vdso/sigreturn.S +0 −10
  2039. arch/mn10300/configs/asb2303_defconfig +0 −6
  2040. arch/mn10300/configs/asb2364_defconfig +0 −8
  2041. arch/mn10300/include/asm/spinlock.h +0 −5
  2042. arch/mn10300/include/uapi/asm/socket.h +2 −0
  2043. arch/mn10300/kernel/process.c +0 −12
  2044. arch/nios2/boot/dts/3c120_devboard.dts +2 −1
  2045. arch/nios2/include/asm/dma-mapping.h +1 −1
  2046. arch/nios2/kernel/time.c +4 −1
  2047. arch/openrisc/Kconfig +3 −0
  2048. arch/openrisc/include/asm/futex.h +4 −35
  2049. arch/openrisc/include/asm/pgtable.h +2 −0
  2050. arch/parisc/Kconfig +24 −0
  2051. arch/parisc/Makefile +16 −1
  2052. arch/parisc/boot/.gitignore +2 −0
  2053. arch/parisc/boot/Makefile +26 −0
  2054. arch/parisc/boot/compressed/.gitignore +3 −0
  2055. arch/parisc/boot/compressed/Makefile +86 −0
  2056. arch/parisc/boot/compressed/head.S +85 −0
  2057. arch/parisc/boot/compressed/misc.c +302 −0
  2058. arch/parisc/boot/compressed/vmlinux.lds.S +101 −0
  2059. arch/parisc/boot/compressed/vmlinux.scr +10 −0
  2060. arch/parisc/boot/install.sh +65 −0
  2061. arch/parisc/configs/c3000_defconfig +0 −1
  2062. arch/parisc/include/asm/atomic.h +2 −0
  2063. arch/parisc/include/asm/futex.h +4 −22
  2064. arch/parisc/include/asm/mmu_context.h +3 −0
  2065. arch/parisc/include/asm/page.h +4 −0
  2066. arch/parisc/include/asm/pdc.h +3 −0
  2067. arch/parisc/include/asm/pdcpat.h +14 −0
  2068. arch/parisc/include/asm/smp.h +1 −0
  2069. arch/parisc/include/asm/spinlock.h +0 −7
  2070. arch/parisc/include/uapi/asm/mman.h +6 −14
  2071. arch/parisc/include/uapi/asm/socket.h +2 −0
  2072. arch/parisc/kernel/firmware.c +73 −9
  2073. arch/parisc/kernel/pci-dma.c +1 −2
  2074. arch/parisc/kernel/pdt.c +248 −41
  2075. arch/parisc/kernel/perf.c +1 −3
  2076. arch/parisc/kernel/processor.c +25 −7
  2077. arch/parisc/kernel/real2.S +4 −0
  2078. arch/parisc/kernel/setup.c +3 −3
  2079. arch/parisc/kernel/signal32.c +15 −16
  2080. arch/parisc/kernel/smp.c +1 −2
  2081. arch/parisc/kernel/traps.c +9 −1
  2082. arch/parisc/kernel/unwind.c +13 −3
  2083. arch/parisc/lib/memcpy.c +0 −2
  2084. arch/parisc/mm/fault.c +29 −4
  2085. arch/powerpc/Kconfig +29 −11
  2086. arch/powerpc/Makefile +5 −1
  2087. arch/powerpc/boot/4xx.c +1 −1
  2088. arch/powerpc/boot/Makefile +6 −5
  2089. arch/powerpc/boot/crt0.S +10 −10
  2090. arch/powerpc/boot/dts/fsp2.dts +19 −14
  2091. arch/powerpc/boot/ppc_asm.h +8 −0
  2092. arch/powerpc/boot/serial.c +4 −0
  2093. arch/powerpc/boot/util.S +5 −19
  2094. arch/powerpc/configs/40x/acadia_defconfig +0 −1
  2095. arch/powerpc/configs/40x/ep405_defconfig +0 −1
  2096. arch/powerpc/configs/40x/kilauea_defconfig +0 −1
  2097. arch/powerpc/configs/40x/klondike_defconfig +0 −1
  2098. arch/powerpc/configs/40x/makalu_defconfig +0 −1
  2099. arch/powerpc/configs/40x/obs600_defconfig +0 −1
  2100. arch/powerpc/configs/40x/virtex_defconfig +1 −2
  2101. arch/powerpc/configs/40x/walnut_defconfig +0 −1
  2102. arch/powerpc/configs/44x/akebono_defconfig +0 −2
  2103. arch/powerpc/configs/44x/bamboo_defconfig +0 −1
  2104. arch/powerpc/configs/44x/currituck_defconfig +0 −2
  2105. arch/powerpc/configs/44x/ebony_defconfig +0 −1
  2106. arch/powerpc/configs/44x/eiger_defconfig +0 −4
  2107. arch/powerpc/configs/44x/fsp2_defconfig +2 −1
  2108. arch/powerpc/configs/44x/icon_defconfig +0 −3
  2109. arch/powerpc/configs/44x/iss476-smp_defconfig +0 −2
  2110. arch/powerpc/configs/44x/katmai_defconfig +0 −1
  2111. arch/powerpc/configs/44x/rainier_defconfig +0 −1
  2112. arch/powerpc/configs/44x/redwood_defconfig +0 −4
  2113. arch/powerpc/configs/44x/sequoia_defconfig +0 −1
  2114. arch/powerpc/configs/44x/taishan_defconfig +0 −1
  2115. arch/powerpc/configs/44x/virtex5_defconfig +1 −2
  2116. arch/powerpc/configs/44x/warp_defconfig +0 −1
  2117. arch/powerpc/configs/52xx/cm5200_defconfig +0 −1
  2118. arch/powerpc/configs/52xx/lite5200b_defconfig +1 −2
  2119. arch/powerpc/configs/52xx/motionpro_defconfig +7 −8
  2120. arch/powerpc/configs/52xx/tqm5200_defconfig +0 −2
  2121. arch/powerpc/configs/83xx/asp8347_defconfig +0 −2
  2122. arch/powerpc/configs/83xx/kmeter1_defconfig +0 −1
  2123. arch/powerpc/configs/83xx/mpc8313_rdb_defconfig +0 −3
  2124. arch/powerpc/configs/83xx/mpc8315_rdb_defconfig +0 −2
  2125. arch/powerpc/configs/83xx/mpc832x_mds_defconfig +1 −3
  2126. arch/powerpc/configs/83xx/mpc832x_rdb_defconfig +2 −4
  2127. arch/powerpc/configs/83xx/mpc834x_itx_defconfig +0 −2
  2128. arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig +0 −1
  2129. arch/powerpc/configs/83xx/mpc834x_mds_defconfig +0 −2
  2130. arch/powerpc/configs/83xx/mpc836x_mds_defconfig +1 −3
  2131. arch/powerpc/configs/83xx/mpc836x_rdk_defconfig +1 −4
  2132. arch/powerpc/configs/83xx/mpc837x_mds_defconfig +1 −3
  2133. arch/powerpc/configs/83xx/mpc837x_rdb_defconfig +1 −4
  2134. arch/powerpc/configs/83xx/sbc834x_defconfig +1 −3
  2135. arch/powerpc/configs/85xx/ge_imp3a_defconfig +1 −2
  2136. arch/powerpc/configs/85xx/ksi8560_defconfig +1 −3
  2137. arch/powerpc/configs/85xx/mpc8540_ads_defconfig +1 −3
  2138. arch/powerpc/configs/85xx/mpc8560_ads_defconfig +2 −4
  2139. arch/powerpc/configs/85xx/mpc85xx_cds_defconfig +1 −3
  2140. arch/powerpc/configs/85xx/sbc8548_defconfig +1 −3
  2141. arch/powerpc/configs/85xx/socrates_defconfig +0 −3
  2142. arch/powerpc/configs/85xx/stx_gp3_defconfig +0 −3
  2143. arch/powerpc/configs/85xx/tqm8540_defconfig +1 −3
  2144. arch/powerpc/configs/85xx/tqm8541_defconfig +1 −3
  2145. arch/powerpc/configs/85xx/tqm8548_defconfig +0 −2
  2146. arch/powerpc/configs/85xx/tqm8555_defconfig +1 −3
  2147. arch/powerpc/configs/85xx/tqm8560_defconfig +1 −3
  2148. arch/powerpc/configs/85xx/xes_mpc85xx_defconfig +1 −4
  2149. arch/powerpc/configs/adder875_defconfig +1 −1
  2150. arch/powerpc/configs/amigaone_defconfig +0 −2
  2151. arch/powerpc/configs/be.config +1 −0
  2152. arch/powerpc/configs/c2k_defconfig +1 −4
  2153. arch/powerpc/configs/cell_defconfig +1 −8
  2154. arch/powerpc/configs/chrp32_defconfig +1 −2
  2155. arch/powerpc/configs/ep8248e_defconfig +0 −1
  2156. arch/powerpc/configs/ep88xc_defconfig +1 −1
  2157. arch/powerpc/configs/g5_defconfig +6 −10
  2158. arch/powerpc/configs/gamecube_defconfig +3 −4
  2159. arch/powerpc/configs/holly_defconfig +1 −2
  2160. arch/powerpc/configs/linkstation_defconfig +0 −3
  2161. arch/powerpc/configs/maple_defconfig +2 −7
  2162. arch/powerpc/configs/mgcoge_defconfig +0 −2
  2163. arch/powerpc/configs/mpc512x_defconfig +12 −16
  2164. arch/powerpc/configs/mpc5200_defconfig +0 −4
  2165. arch/powerpc/configs/mpc7448_hpc2_defconfig +1 −3
  2166. arch/powerpc/configs/mpc8272_ads_defconfig +0 −1
  2167. arch/powerpc/configs/mpc83xx_defconfig +3 −7
  2168. arch/powerpc/configs/mpc866_ads_defconfig +1 −3
  2169. arch/powerpc/configs/mpc86xx_basic_defconfig +6 −6
  2170. arch/powerpc/configs/mpc885_ads_defconfig +1 −1
  2171. arch/powerpc/configs/mvme5100_defconfig +0 −3
  2172. arch/powerpc/configs/pasemi_defconfig +3 −5
  2173. arch/powerpc/configs/pmac32_defconfig +8 −10
  2174. arch/powerpc/configs/powernv_defconfig +7 −11
  2175. arch/powerpc/configs/ppc40x_defconfig +1 −2
  2176. arch/powerpc/configs/ppc44x_defconfig +1 −3
  2177. arch/powerpc/configs/ppc64_defconfig +22 −23
  2178. arch/powerpc/configs/ppc64e_defconfig +7 −10
  2179. arch/powerpc/configs/ppc6xx_defconfig +21 −32
  2180. arch/powerpc/configs/pq2fads_defconfig +0 −1
  2181. arch/powerpc/configs/ps3_defconfig +0 −3
  2182. arch/powerpc/configs/pseries_defconfig +18 −24
  2183. arch/powerpc/configs/tqm8xx_defconfig +1 −2
  2184. arch/powerpc/configs/wii_defconfig +3 −7
  2185. arch/powerpc/include/asm/Kbuild +1 −0
  2186. arch/powerpc/include/asm/asm-compat.h +1 −1
  2187. arch/powerpc/include/asm/barrier.h +0 −7
  2188. arch/powerpc/include/asm/book3s/32/pgtable.h +1 −3
  2189. arch/powerpc/include/asm/book3s/64/hash.h +4 −2
  2190. arch/powerpc/include/asm/book3s/64/hugetlb.h +1 −3
  2191. arch/powerpc/include/asm/book3s/64/mmu-hash.h +2 −1
  2192. arch/powerpc/include/asm/book3s/64/mmu.h +3 −5
  2193. arch/powerpc/include/asm/book3s/64/pgalloc.h +0 −2
  2194. arch/powerpc/include/asm/book3s/64/pgtable.h +8 −1
  2195. arch/powerpc/include/asm/book3s/64/radix.h +2 −0
  2196. arch/powerpc/include/asm/book3s/64/tlbflush-radix.h +2 −3
  2197. arch/powerpc/include/asm/bug.h +1 −0
  2198. arch/powerpc/include/asm/cache.h +1 −1
  2199. arch/powerpc/include/asm/cpuidle.h +11 −16
  2200. arch/powerpc/include/asm/cputable.h +2 −2
  2201. arch/powerpc/include/asm/eeh.h +2 −3
  2202. arch/powerpc/include/asm/fadump.h +2 −0
  2203. arch/powerpc/include/asm/feature-fixups.h +3 −3
  2204. arch/powerpc/include/asm/fixmap.h +7 −3
  2205. arch/powerpc/include/asm/fs_pd.h +1 −1
  2206. arch/powerpc/include/asm/futex.h +5 −21
  2207. arch/powerpc/include/asm/hardirq.h +4 −0
  2208. arch/powerpc/include/asm/hugetlb.h +0 −14
  2209. arch/powerpc/include/asm/hvcall.h +12 −1
  2210. arch/powerpc/include/asm/icswx.h +3 −0
  2211. arch/powerpc/include/asm/imc-pmu.h +128 −0
  2212. arch/powerpc/include/asm/kvm_book3s_asm.h +4 −0
  2213. arch/powerpc/include/asm/kvm_host.h +0 −5
  2214. arch/powerpc/include/asm/machdep.h +0 −1
  2215. arch/powerpc/include/asm/mmu_context.h +2 −56
  2216. arch/powerpc/include/asm/nmi.h +1 −2
  2217. arch/powerpc/include/asm/nohash/32/pgtable.h +1 −4
  2218. arch/powerpc/include/asm/nohash/pgtable.h +1 −0
  2219. arch/powerpc/include/asm/opal-api.h +23 −1
  2220. arch/powerpc/include/asm/opal.h +18 −1
  2221. arch/powerpc/include/asm/paca.h +7 −0
  2222. arch/powerpc/include/asm/pci-bridge.h +0 −1
  2223. arch/powerpc/include/asm/pgalloc.h +2 −0
  2224. arch/powerpc/include/asm/pgtable-be-types.h +1 −0
  2225. arch/powerpc/include/asm/pgtable-types.h +1 −0
  2226. arch/powerpc/include/asm/pgtable.h +2 −10
  2227. arch/powerpc/include/asm/pnv-pci.h +2 −0
  2228. arch/powerpc/include/asm/ppc-opcode.h +15 −1
  2229. arch/powerpc/include/asm/ppc_asm.h +11 −5
  2230. arch/powerpc/include/asm/prom.h +4 −1
  2231. arch/powerpc/include/asm/pte-walk.h +35 −0
  2232. arch/powerpc/include/asm/reg.h +74 −25
  2233. arch/powerpc/include/asm/reg_booke.h +0 −3
  2234. arch/powerpc/include/asm/setup.h +0 −1
  2235. arch/powerpc/include/asm/smp.h +6 −0
  2236. arch/powerpc/include/asm/spinlock.h +3 −33
  2237. arch/powerpc/include/asm/sstep.h +88 −7
  2238. arch/powerpc/include/asm/string.h +26 −0
  2239. arch/powerpc/include/asm/timex.h +1 −5
  2240. arch/powerpc/include/asm/tlb.h +10 −1
  2241. arch/powerpc/include/asm/topology.h +0 −2
  2242. arch/powerpc/include/asm/vas.h +159 −0
  2243. arch/powerpc/include/asm/vga.h +8 −0
  2244. arch/powerpc/include/asm/xive.h +5 −0
  2245. arch/powerpc/include/uapi/asm/mman.h +0 −16
  2246. arch/powerpc/kernel/Makefile +2 −2
  2247. arch/powerpc/kernel/align.c +32 −742
  2248. arch/powerpc/kernel/asm-offsets.c +8 −0
  2249. arch/powerpc/kernel/btext.c +1 −1
  2250. arch/powerpc/kernel/cacheinfo.c +16 −18
  2251. arch/powerpc/kernel/cputable.c +5 −3
  2252. arch/powerpc/kernel/eeh.c +14 −10
  2253. arch/powerpc/kernel/eeh_dev.c +1 −24
  2254. arch/powerpc/kernel/eeh_driver.c +1 −1
  2255. arch/powerpc/kernel/eeh_pe.c +51 −39
  2256. arch/powerpc/kernel/eeh_sysfs.c +0 −3
  2257. arch/powerpc/kernel/entry_32.S +22 −0
  2258. arch/powerpc/kernel/entry_64.S +2 −7
  2259. arch/powerpc/kernel/exceptions-64s.S +19 −18
  2260. arch/powerpc/kernel/fadump.c +30 −1
  2261. arch/powerpc/kernel/head_32.S +3 −3
  2262. arch/powerpc/kernel/head_64.S +4 −4
  2263. arch/powerpc/kernel/head_8xx.S +71 −38
  2264. arch/powerpc/kernel/idle_book3s.S +114 −16
  2265. arch/powerpc/kernel/io-workarounds.c +5 −4
  2266. arch/powerpc/kernel/iommu.c +3 −4
  2267. arch/powerpc/kernel/irq.c +40 −25
  2268. arch/powerpc/kernel/isa-bridge.c +16 −16
  2269. arch/powerpc/kernel/kgdb.c +2 −2
  2270. arch/powerpc/kernel/kvm.c +0 −7
  2271. arch/powerpc/kernel/l2cr_6xx.S +2 −2
  2272. arch/powerpc/kernel/legacy_serial.c +6 −6
  2273. arch/powerpc/kernel/mce.c +33 −0
  2274. arch/powerpc/kernel/of_platform.c +1 −1
  2275. arch/powerpc/kernel/optprobes.c +3 −1
  2276. arch/powerpc/kernel/optprobes_head.S +0 −8
  2277. arch/powerpc/kernel/paca.c +12 −3
  2278. arch/powerpc/kernel/pci-common.c +7 −8
  2279. arch/powerpc/kernel/pci_32.c +2 −2
  2280. arch/powerpc/kernel/pci_64.c +2 −2
  2281. arch/powerpc/kernel/pci_dn.c +7 −15
  2282. arch/powerpc/kernel/pci_of_scan.c +12 −12
  2283. arch/powerpc/kernel/process.c +54 −46
  2284. arch/powerpc/kernel/prom_init.c +33 −1
  2285. arch/powerpc/kernel/ptrace.c +13 −31
  2286. arch/powerpc/kernel/reloc_64.S +3 −3
  2287. arch/powerpc/kernel/rtas.c +2 −2
  2288. arch/powerpc/kernel/rtas_pci.c +4 −29
  2289. arch/powerpc/kernel/setup-common.c +2 −36
  2290. arch/powerpc/kernel/setup_32.c +6 −1
  2291. arch/powerpc/kernel/setup_64.c +36 −3
  2292. arch/powerpc/kernel/signal_32.c +9 −11
  2293. arch/powerpc/kernel/smp.c +146 −82
  2294. arch/powerpc/kernel/swsusp_asm64.S +1 −1
  2295. arch/powerpc/kernel/systbl.S +7 −7
  2296. arch/powerpc/kernel/traps.c +102 −215
  2297. arch/powerpc/kernel/uprobes.c +9 −0
  2298. arch/powerpc/kernel/vdso32/gettimeofday.S +3 −9
  2299. arch/powerpc/kernel/vmlinux.lds.S +1 −1
  2300. arch/powerpc/kernel/watchdog.c +3 −0
  2301. arch/powerpc/kvm/book3s_64_mmu_hv.c +4 −2
  2302. arch/powerpc/kvm/book3s_64_mmu_radix.c +16 −16
  2303. arch/powerpc/kvm/book3s_64_vio.c +34 −23
  2304. arch/powerpc/kvm/book3s_64_vio_hv.c +11 −1
  2305. arch/powerpc/kvm/book3s_hv.c +30 −3
  2306. arch/powerpc/kvm/book3s_hv_rm_mmu.c +10 −10
  2307. arch/powerpc/kvm/book3s_hv_rm_xive.c +0 −1
  2308. arch/powerpc/kvm/book3s_hv_rmhandlers.S +30 −3
  2309. arch/powerpc/kvm/book3s_xive.c +0 −1
  2310. arch/powerpc/kvm/book3s_xive_template.c +68 −5
  2311. arch/powerpc/kvm/e500.c +6 −2
  2312. arch/powerpc/kvm/e500_mmu_host.c +2 −1
  2313. arch/powerpc/kvm/e500mc.c +3 −1
  2314. arch/powerpc/kvm/powerpc.c +5 −0
  2315. arch/powerpc/lib/Makefile +2 −1
  2316. arch/powerpc/lib/copy_32.S +34 −10
  2317. arch/powerpc/lib/copypage_power7.S +7 −7
  2318. arch/powerpc/lib/copyuser_power7.S +33 −33
  2319. arch/powerpc/lib/ldstfp.S +85 −214
  2320. arch/powerpc/lib/mem_64.S +18 −1
  2321. arch/powerpc/lib/memcpy_power7.S +33 −33
  2322. arch/powerpc/lib/quad.S +62 −0
  2323. arch/powerpc/lib/sstep.c +1647 −590
  2324. arch/powerpc/lib/string_64.S +1 −1
  2325. arch/powerpc/mm/8xx_mmu.c +22 −7
  2326. arch/powerpc/mm/Makefile +1 −3
  2327. arch/powerpc/mm/dump_hashpagetable.c +1 −1
  2328. arch/powerpc/mm/dump_linuxpagetables.c +1 −1
  2329. arch/powerpc/mm/fault.c +294 −268
  2330. arch/powerpc/mm/hash_low_32.S +1 −1
  2331. arch/powerpc/mm/hash_utils_64.c +8 −8
  2332. arch/powerpc/mm/hugetlbpage.c +38 −181
  2333. arch/powerpc/mm/icswx.c +0 −292
  2334. arch/powerpc/mm/icswx.h +0 −68
  2335. arch/powerpc/mm/icswx_pid.c +0 −87
  2336. arch/powerpc/mm/init_32.c +6 −2
  2337. arch/powerpc/mm/init_64.c +3 −3
  2338. arch/powerpc/mm/mem.c +1 −1
  2339. arch/powerpc/mm/mmu_context.c +99 −0
  2340. arch/powerpc/mm/mmu_context_book3s64.c +2 −18
  2341. arch/powerpc/mm/mmu_decl.h +5 −5
  2342. arch/powerpc/mm/pgtable-book3s64.c +23 −1
  2343. arch/powerpc/mm/pgtable-hash64.c +5 −7
  2344. arch/powerpc/mm/pgtable-radix.c +25 −8
  2345. arch/powerpc/mm/pgtable_32.c +42 −24
  2346. arch/powerpc/mm/pgtable_64.c +2 −0
  2347. arch/powerpc/mm/slb_low.S +18 −5
  2348. arch/powerpc/mm/tlb-radix.c +66 −42
  2349. arch/powerpc/mm/tlb_hash64.c +6 −7
  2350. arch/powerpc/mm/tlb_nohash_low.S +1 −1
  2351. arch/powerpc/net/bpf_jit.h +1 −0
  2352. arch/powerpc/net/bpf_jit_comp64.c +21 −5
  2353. arch/powerpc/perf/Makefile +1 −0
  2354. arch/powerpc/perf/callchain.c +2 −1
  2355. arch/powerpc/perf/core-book3s.c +7 −1
  2356. arch/powerpc/perf/imc-pmu.c +1306 −0
  2357. arch/powerpc/perf/isa207-common.c +28 −3
  2358. arch/powerpc/perf/isa207-common.h +3 −2
  2359. arch/powerpc/perf/power8-pmu.c +5 −28
  2360. arch/powerpc/perf/power9-events-list.h +8 −1
  2361. arch/powerpc/perf/power9-pmu.c +13 −10
  2362. arch/powerpc/platforms/44x/Makefile +2 −2
  2363. arch/powerpc/platforms/44x/machine_check.c +89 −0
  2364. arch/powerpc/platforms/4xx/Makefile +8 −0
  2365. arch/powerpc/platforms/4xx/cpm.c +5 −5
  2366. arch/powerpc/platforms/4xx/gpio.c +1 −2
  2367. arch/powerpc/platforms/4xx/hsta_msi.c +0 −0
  2368. arch/powerpc/platforms/4xx/machine_check.c +26 −0
  2369. arch/powerpc/platforms/4xx/msi.c +1 −2
  2370. arch/powerpc/platforms/4xx/ocm.c +0 −0
  2371. arch/powerpc/platforms/4xx/pci.c +53 −65
  2372. arch/powerpc/platforms/4xx/pci.h +0 −0
  2373. arch/powerpc/platforms/4xx/soc.c +2 −3
  2374. arch/powerpc/platforms/4xx/uic.c +7 −7
  2375. arch/powerpc/platforms/512x/clock-commonclk.c +2 −2
  2376. arch/powerpc/platforms/512x/mpc512x_shared.c +6 −6
  2377. arch/powerpc/platforms/52xx/efika.c +4 −4
  2378. arch/powerpc/platforms/52xx/media5200.c +1 −1
  2379. arch/powerpc/platforms/52xx/mpc52xx_gpt.c +2 −2
  2380. arch/powerpc/platforms/52xx/mpc52xx_pci.c +4 −4
  2381. arch/powerpc/platforms/83xx/mcu_mpc8349emitx.c +2 −1
  2382. arch/powerpc/platforms/83xx/mpc832x_rdb.c +1 −1
  2383. arch/powerpc/platforms/83xx/suspend.c +2 −2
  2384. arch/powerpc/platforms/85xx/p1022_ds.c +4 −4
  2385. arch/powerpc/platforms/85xx/xes_mpc85xx.c +2 −2
  2386. arch/powerpc/platforms/8xx/Kconfig +1 −2
  2387. arch/powerpc/platforms/8xx/Makefile +1 −1
  2388. arch/powerpc/platforms/8xx/m8xx_setup.c +1 −1
  2389. arch/powerpc/platforms/8xx/machine_check.c +37 −0
  2390. arch/powerpc/platforms/8xx/pic.c +1 −1
  2391. arch/powerpc/platforms/8xx/pic.h +0 −0
  2392. arch/powerpc/platforms/Kconfig.cputype +1 −44
  2393. arch/powerpc/platforms/Makefile +1 −0
  2394. arch/powerpc/platforms/amigaone/setup.c +3 −3
  2395. arch/powerpc/platforms/cell/axon_msi.c +18 −18
  2396. arch/powerpc/platforms/cell/interrupt.c +2 −2
  2397. arch/powerpc/platforms/cell/iommu.c +12 −12
  2398. arch/powerpc/platforms/cell/ras.c +2 −2
  2399. arch/powerpc/platforms/cell/spider-pci.c +2 −2
  2400. arch/powerpc/platforms/cell/spider-pic.c +2 −2
  2401. arch/powerpc/platforms/cell/spu_manage.c +13 −13
  2402. arch/powerpc/platforms/cell/spufs/file.c +1 −1
  2403. arch/powerpc/platforms/chrp/pci.c +9 −9
  2404. arch/powerpc/platforms/chrp/pegasos_eth.c +1 −1
  2405. arch/powerpc/platforms/embedded6xx/linkstation.c +3 −3
  2406. arch/powerpc/platforms/embedded6xx/mvme5100.c +1 −1
  2407. arch/powerpc/platforms/embedded6xx/storcenter.c +1 −1
  2408. arch/powerpc/platforms/maple/pci.c +5 −5
  2409. arch/powerpc/platforms/pasemi/pci.c +1 −1
  2410. arch/powerpc/platforms/powermac/feature.c +7 −7
  2411. arch/powerpc/platforms/powermac/low_i2c.c +25 −25
  2412. arch/powerpc/platforms/powermac/pci.c +3 −3
  2413. arch/powerpc/platforms/powermac/pfunc_base.c +12 −12
  2414. arch/powerpc/platforms/powermac/pfunc_core.c +3 −3
  2415. arch/powerpc/platforms/powermac/pic.c +4 −4
  2416. arch/powerpc/platforms/powermac/setup.c +1 −1
  2417. arch/powerpc/platforms/powernv/Kconfig +22 −0
  2418. arch/powerpc/platforms/powernv/Makefile +4 −1
  2419. arch/powerpc/platforms/powernv/copy-paste.h +46 −0
  2420. arch/powerpc/platforms/powernv/eeh-powernv.c +9 −20
  2421. arch/powerpc/platforms/powernv/idle.c +39 −1
  2422. arch/powerpc/platforms/powernv/memtrace.c +282 −0
  2423. arch/powerpc/platforms/powernv/npu-dma.c +6 −16
  2424. arch/powerpc/platforms/powernv/opal-async.c +2 −2
  2425. arch/powerpc/platforms/powernv/opal-flash.c +1 −1
  2426. arch/powerpc/platforms/powernv/opal-hmi.c +3 −19
  2427. arch/powerpc/platforms/powernv/opal-imc.c +226 −0
  2428. arch/powerpc/platforms/powernv/opal-powercap.c +244 −0
  2429. arch/powerpc/platforms/powernv/opal-prd.c +3 −10
  2430. arch/powerpc/platforms/powernv/opal-psr.c +175 −0
  2431. arch/powerpc/platforms/powernv/opal-sensor-groups.c +212 −0
  2432. arch/powerpc/platforms/powernv/opal-wrappers.S +10 −1
  2433. arch/powerpc/platforms/powernv/opal-xscom.c +4 −4
  2434. arch/powerpc/platforms/powernv/opal.c +103 −49
  2435. arch/powerpc/platforms/powernv/pci-ioda.c +8 −10
  2436. arch/powerpc/platforms/powernv/pci.c +75 −0
  2437. arch/powerpc/platforms/powernv/pci.h +5 −0
  2438. arch/powerpc/platforms/powernv/powernv.h +2 −0
  2439. arch/powerpc/platforms/powernv/rng.c +42 −3
  2440. arch/powerpc/platforms/powernv/smp.c +2 −9
  2441. arch/powerpc/platforms/powernv/vas-window.c +1134 −0
  2442. arch/powerpc/platforms/powernv/vas.c +151 −0
  2443. arch/powerpc/platforms/powernv/vas.h +467 −0
  2444. arch/powerpc/platforms/ps3/repository.c +5 −17
  2445. arch/powerpc/platforms/ps3/setup.c +0 −15
  2446. arch/powerpc/platforms/pseries/Kconfig +1 −0
  2447. arch/powerpc/platforms/pseries/dlpar.c +3 −7
  2448. arch/powerpc/platforms/pseries/eeh_pseries.c +1 −3
  2449. arch/powerpc/platforms/pseries/event_sources.c +3 −3
  2450. arch/powerpc/platforms/pseries/hotplug-cpu.c +17 −6
  2451. arch/powerpc/platforms/pseries/hotplug-memory.c +36 −21
  2452. arch/powerpc/platforms/pseries/hvCall.S +1 −1
  2453. arch/powerpc/platforms/pseries/ibmebus.c +2 −3
  2454. arch/powerpc/platforms/pseries/iommu.c +29 −29
  2455. arch/powerpc/platforms/pseries/kexec.c +5 −1
  2456. arch/powerpc/platforms/pseries/mobility.c +4 −2
  2457. arch/powerpc/platforms/pseries/msi.c +8 −15
  2458. arch/powerpc/platforms/pseries/pci_dlpar.c +1 −1
  2459. arch/powerpc/platforms/pseries/pseries.h +1 −1
  2460. arch/powerpc/platforms/pseries/pseries_energy.c +3 −4
  2461. arch/powerpc/platforms/pseries/ras.c +15 −0
  2462. arch/powerpc/platforms/pseries/reconfig.c +4 −11
  2463. arch/powerpc/platforms/pseries/setup.c +6 −3
  2464. arch/powerpc/platforms/pseries/smp.c +25 −2
  2465. arch/powerpc/platforms/pseries/suspend.c +1 −1
  2466. arch/powerpc/platforms/pseries/vio.c +5 −5
  2467. arch/powerpc/purgatory/trampoline.S +3 −3
  2468. arch/powerpc/sysdev/Makefile +1 −11
  2469. arch/powerpc/sysdev/axonram.c +21 −27
  2470. arch/powerpc/sysdev/dcr.c +2 −2
  2471. arch/powerpc/sysdev/fsl_85xx_cache_sram.c +6 −6
  2472. arch/powerpc/sysdev/fsl_gtm.c +7 −7
  2473. arch/powerpc/sysdev/fsl_msi.c +8 −8
  2474. arch/powerpc/sysdev/fsl_pci.c +23 −24
  2475. arch/powerpc/sysdev/fsl_rio.c +18 −18
  2476. arch/powerpc/sysdev/fsl_rmu.c +6 −6
  2477. arch/powerpc/sysdev/fsl_soc.c +1 −1
  2478. arch/powerpc/sysdev/fsl_soc.h +1 −1
  2479. arch/powerpc/sysdev/ipic.c +1 −0
  2480. arch/powerpc/sysdev/mpic.c +2 −2
  2481. arch/powerpc/sysdev/mpic_msgr.c +1 −1
  2482. arch/powerpc/sysdev/mpic_msi.c +1 −1
  2483. arch/powerpc/sysdev/mpic_timer.c +7 −12
  2484. arch/powerpc/sysdev/msi_bitmap.c +2 −2
  2485. arch/powerpc/sysdev/mv64x60_dev.c +10 −10
  2486. arch/powerpc/sysdev/mv64x60_pci.c +3 −3
  2487. arch/powerpc/sysdev/of_rtc.c +6 −6
  2488. arch/powerpc/sysdev/scom.c +3 −2
  2489. arch/powerpc/sysdev/simple_gpio.c +1 −2
  2490. arch/powerpc/sysdev/tsi108_pci.c +2 −2
  2491. arch/powerpc/sysdev/xive/Kconfig +5 −0
  2492. arch/powerpc/sysdev/xive/Makefile +1 −0
  2493. arch/powerpc/sysdev/xive/common.c +71 −19
  2494. arch/powerpc/sysdev/xive/native.c +11 −15
  2495. arch/powerpc/sysdev/xive/spapr.c +662 −0
  2496. arch/powerpc/sysdev/xive/xive-internal.h +7 −0
  2497. arch/powerpc/xmon/Makefile +4 −0
  2498. arch/powerpc/xmon/xmon.c +66 −20
  2499. arch/s390/Kconfig +18 −0
  2500. arch/s390/Makefile +4 −2
  2501. arch/s390/include/asm/Kbuild +1 −0
  2502. arch/s390/include/asm/ap.h +126 −0
  2503. arch/s390/include/asm/compat.h +3 −2
  2504. arch/s390/include/asm/cpcmd.h +3 −4
  2505. arch/s390/include/asm/ebcdic.h +1 −3
  2506. arch/s390/include/asm/elf.h +1 −1
  2507. arch/s390/include/asm/futex.h +5 −18
  2508. arch/s390/include/asm/ipl.h +1 −1
  2509. arch/s390/include/asm/kvm_host.h +5 −1
  2510. arch/s390/include/asm/lowcore.h +24 −24
  2511. arch/s390/include/asm/mman.h +0 −11
  2512. arch/s390/include/asm/mmu.h +2 −5
  2513. arch/s390/include/asm/mmu_context.h +13 −35
  2514. arch/s390/include/asm/nmi.h +1 −1
  2515. arch/s390/include/asm/page-states.h +2 −1
  2516. arch/s390/include/asm/page.h +27 −10
  2517. arch/s390/include/asm/pci.h +7 −0
  2518. arch/s390/include/asm/pgalloc.h +12 −6
  2519. arch/s390/include/asm/pgtable.h +123 −78
  2520. arch/s390/include/asm/qdio.h +1 −1
  2521. arch/s390/include/asm/setup.h +14 −3
  2522. arch/s390/include/asm/spinlock.h +5 −11
  2523. arch/s390/include/asm/timex.h +35 −5
  2524. arch/s390/include/asm/tlb.h +3 −3
  2525. arch/s390/include/asm/tlbflush.h +14 −23
  2526. arch/s390/include/asm/topology.h +0 −6
  2527. arch/s390/include/asm/types.h +0 −11
  2528. arch/s390/include/asm/unaligned.h +0 −13
  2529. arch/s390/include/uapi/asm/Kbuild +1 −0
  2530. arch/s390/include/uapi/asm/dasd.h +5 −1
  2531. arch/s390/include/uapi/asm/kvm.h +6 −0
  2532. arch/s390/include/uapi/asm/socket.h +2 −0
  2533. arch/s390/include/uapi/asm/swab.h +0 −89
  2534. arch/s390/include/uapi/asm/vmcp.h +7 −13
  2535. arch/s390/kernel/asm-offsets.c +1 −0
  2536. arch/s390/kernel/compat_signal.c +15 −17
  2537. arch/s390/kernel/cpcmd.c +4 −9
  2538. arch/s390/kernel/debug.c +5 −4
  2539. arch/s390/kernel/dumpstack.c +1 −1
  2540. arch/s390/kernel/early.c +12 −17
  2541. arch/s390/kernel/head.S +2 −1
  2542. arch/s390/kernel/head64.S +2 −2
  2543. arch/s390/kernel/irq.c +2 −1
  2544. arch/s390/kernel/perf_cpum_sf.c +6 −3
  2545. arch/s390/kernel/relocate_kernel.S +3 −2
  2546. arch/s390/kernel/setup.c +9 −5
  2547. arch/s390/kernel/smp.c +1 −0
  2548. arch/s390/kernel/suspend.c +19 −5
  2549. arch/s390/kernel/time.c +46 −21
  2550. arch/s390/kernel/topology.c +135 −13
  2551. arch/s390/kernel/vdso.c +2 −0
  2552. arch/s390/kernel/vdso32/vdso32.lds.S +3 −1
  2553. arch/s390/kernel/vdso64/vdso64.lds.S +3 −1
  2554. arch/s390/kvm/diag.c +5 −5
  2555. arch/s390/kvm/gaccess.c +17 −18
  2556. arch/s390/kvm/guestdbg.c +1 −1
  2557. arch/s390/kvm/interrupt.c +4 −2
  2558. arch/s390/kvm/kvm-s390.c +116 −2
  2559. arch/s390/kvm/kvm-s390.h +2 −0
  2560. arch/s390/kvm/priv.c +9 −5
  2561. arch/s390/kvm/sigp.c +17 −19
  2562. arch/s390/kvm/sthyi.c +4 −9
  2563. arch/s390/kvm/vsie.c +12 −6
  2564. arch/s390/lib/delay.c +1 −1
  2565. arch/s390/lib/spinlock.c +51 −36
  2566. arch/s390/lib/uaccess.c +26 −12
  2567. arch/s390/mm/fault.c +5 −5
  2568. arch/s390/mm/gmap.c +98 −73
  2569. arch/s390/mm/gup.c +3 −4
  2570. arch/s390/mm/init.c +57 −3
  2571. arch/s390/mm/mmap.c +4 −2
  2572. arch/s390/mm/page-states.c +177 −15
  2573. arch/s390/mm/pageattr.c +3 −2
  2574. arch/s390/mm/pgalloc.c +15 −13
  2575. arch/s390/mm/pgtable.c +126 −34
  2576. arch/s390/mm/vmem.c +12 −35
  2577. arch/s390/net/bpf_jit_comp.c +24 −0
  2578. arch/s390/pci/pci.c +8 −5
  2579. arch/s390/pci/pci_clp.c +9 −1
  2580. arch/s390/tools/gen_facilities.c +5 −1
  2581. arch/sh/boards/mach-migor/setup.c +1 −1
  2582. arch/sh/configs/ap325rxa_defconfig +0 −10
  2583. arch/sh/configs/apsh4a3a_defconfig +0 −9
  2584. arch/sh/configs/apsh4ad0a_defconfig +0 −6
  2585. arch/sh/configs/cayman_defconfig +0 −4
  2586. arch/sh/configs/dreamcast_defconfig +0 −6
  2587. arch/sh/configs/ecovec24-romimage_defconfig +0 −7
  2588. arch/sh/configs/ecovec24_defconfig +0 −9
  2589. arch/sh/configs/edosk7705_defconfig +0 −2
  2590. arch/sh/configs/edosk7760_defconfig +0 −11
  2591. arch/sh/configs/espt_defconfig +0 −10
  2592. arch/sh/configs/hp6xx_defconfig +0 −4
  2593. arch/sh/configs/kfr2r09-romimage_defconfig +0 −5
  2594. arch/sh/configs/kfr2r09_defconfig +0 −7
  2595. arch/sh/configs/landisk_defconfig +0 −4
  2596. arch/sh/configs/lboxre2_defconfig +0 −3
  2597. arch/sh/configs/magicpanelr2_defconfig +0 −9
  2598. arch/sh/configs/microdev_defconfig +0 −3
  2599. arch/sh/configs/migor_defconfig +0 −8
  2600. arch/sh/configs/polaris_defconfig +0 −9
  2601. arch/sh/configs/r7780mp_defconfig +0 −4
  2602. arch/sh/configs/r7785rp_defconfig +0 −3
  2603. arch/sh/configs/rsk7201_defconfig +0 −8
  2604. arch/sh/configs/rsk7203_defconfig +0 −10
  2605. arch/sh/configs/rsk7264_defconfig +0 −3
  2606. arch/sh/configs/rsk7269_defconfig +0 −4
  2607. arch/sh/configs/rts7751r2d1_defconfig +0 −5
  2608. arch/sh/configs/rts7751r2dplus_defconfig +0 −8
  2609. arch/sh/configs/sdk7780_defconfig +0 −9
  2610. arch/sh/configs/sdk7786_defconfig +0 −9
  2611. arch/sh/configs/se7206_defconfig +0 −8
  2612. arch/sh/configs/se7343_defconfig +0 −9
  2613. arch/sh/configs/se7619_defconfig +0 −5
  2614. arch/sh/configs/se7705_defconfig +0 −5
  2615. arch/sh/configs/se7712_defconfig +0 −7
  2616. arch/sh/configs/se7721_defconfig +0 −6
  2617. arch/sh/configs/se7722_defconfig +0 −3
  2618. arch/sh/configs/se7724_defconfig +0 −9
  2619. arch/sh/configs/se7750_defconfig +0 −5
  2620. arch/sh/configs/se7751_defconfig +0 −6
  2621. arch/sh/configs/se7780_defconfig +0 −7
  2622. arch/sh/configs/secureedge5410_defconfig +0 −9
  2623. arch/sh/configs/sh03_defconfig +0 −4
  2624. arch/sh/configs/sh2007_defconfig +0 −8
  2625. arch/sh/configs/sh7710voipgw_defconfig +0 −5
  2626. arch/sh/configs/sh7724_generic_defconfig +0 −3
  2627. arch/sh/configs/sh7757lcr_defconfig +0 −4
  2628. arch/sh/configs/sh7763rdp_defconfig +0 −9
  2629. arch/sh/configs/sh7770_generic_defconfig +0 −3
  2630. arch/sh/configs/sh7785lcr_32bit_defconfig +0 −10
  2631. arch/sh/configs/sh7785lcr_defconfig +0 −9
  2632. arch/sh/configs/shmin_defconfig +0 −4
  2633. arch/sh/configs/shx3_defconfig +0 −6
  2634. arch/sh/configs/titan_defconfig +0 −8
  2635. arch/sh/configs/ul2_defconfig +0 −9
  2636. arch/sh/configs/urquell_defconfig +0 −9
  2637. arch/sh/drivers/pci/fixups-cayman.c +1 −1
  2638. arch/sh/drivers/pci/fixups-dreamcast.c +2 −3
  2639. arch/sh/drivers/pci/fixups-r7780rp.c +1 −1
  2640. arch/sh/drivers/pci/fixups-rts7751r2d.c +3 −3
  2641. arch/sh/drivers/pci/fixups-sdk7780.c +2 −2
  2642. arch/sh/drivers/pci/fixups-se7751.c +1 −1
  2643. arch/sh/drivers/pci/fixups-sh03.c +1 −1
  2644. arch/sh/drivers/pci/fixups-snapgear.c +1 −1
  2645. arch/sh/drivers/pci/fixups-titan.c +2 −2
  2646. arch/sh/drivers/pci/pci.c +25 −24
  2647. arch/sh/drivers/pci/pcie-sh7786.c +1 −1
  2648. arch/sh/include/asm/futex.h +4 −22
  2649. arch/sh/include/asm/processor_32.h +0 −4
  2650. arch/sh/include/asm/processor_64.h +0 −4
  2651. arch/sh/include/asm/spinlock-cas.h +0 −5
  2652. arch/sh/include/asm/spinlock-llsc.h +0 −5
  2653. arch/sparc/Kconfig +3 −0
  2654. arch/sparc/configs/sparc64_defconfig +1 −0
  2655. arch/sparc/crypto/aes_glue.c +1 −2
  2656. arch/sparc/include/asm/atomic_32.h +2 −0
  2657. arch/sparc/include/asm/futex_64.h +5 −21
  2658. arch/sparc/include/asm/hugetlb.h +7 −0
  2659. arch/sparc/include/asm/hypervisor.h +18 −0
  2660. arch/sparc/include/asm/page_32.h +2 −0
  2661. arch/sparc/include/asm/page_64.h +2 −1
  2662. arch/sparc/include/asm/pgtable_64.h +18 −2
  2663. arch/sparc/include/asm/smp_64.h +5 −0
  2664. arch/sparc/include/asm/spinlock_32.h +0 −5
  2665. arch/sparc/include/asm/trap_block.h +2 −0
  2666. arch/sparc/include/asm/tsb.h +36 −0
  2667. arch/sparc/include/asm/vga.h +25 −0
  2668. arch/sparc/include/asm/vio.h +9 −0
  2669. arch/sparc/include/uapi/asm/siginfo.h +8 −1
  2670. arch/sparc/include/uapi/asm/socket.h +2 −0
  2671. arch/sparc/kernel/etrap_64.S +22 −4
  2672. arch/sparc/kernel/head_64.S +15 −3
  2673. arch/sparc/kernel/hvapi.c +1 −1
  2674. arch/sparc/kernel/hvcalls.S +11 −0
  2675. arch/sparc/kernel/ldc.c +2 −0
  2676. arch/sparc/kernel/leon_pci.c +18 −12
  2677. arch/sparc/kernel/leon_pci_grpci1.c +1 −1
  2678. arch/sparc/kernel/leon_pci_grpci2.c +1 −1
  2679. arch/sparc/kernel/pci.c +0 −10
  2680. arch/sparc/kernel/pci_sun4v.c +0 −2
  2681. arch/sparc/kernel/pcic.c +1 −7
  2682. arch/sparc/kernel/process_64.c +6 −1
  2683. arch/sparc/kernel/rtrap_64.S +11 −2
  2684. arch/sparc/kernel/setup_64.c +6 −0
  2685. arch/sparc/kernel/signal32.c +8 −8
  2686. arch/sparc/kernel/smp_64.c +77 −3
  2687. arch/sparc/kernel/traps_32.c +1 −1
  2688. arch/sparc/kernel/traps_64.c +52 −1
  2689. arch/sparc/kernel/tsb.S +1 −1
  2690. arch/sparc/kernel/vio.c +1 −0
  2691. arch/sparc/kernel/viohs.c +9 −3
  2692. arch/sparc/kernel/vmlinux.lds.S +10 −0
  2693. arch/sparc/lib/M7copy_from_user.S +40 −0
  2694. arch/sparc/lib/M7copy_to_user.S +51 −0
  2695. arch/sparc/lib/M7memcpy.S +923 −0
  2696. arch/sparc/lib/M7memset.S +352 −0
  2697. arch/sparc/lib/M7patch.S +51 −0
  2698. arch/sparc/lib/Makefile +5 −0
  2699. arch/sparc/lib/Memcpy_utils.S +345 −0
  2700. arch/sparc/lib/NG4memcpy.S +64 −213
  2701. arch/sparc/lib/U3memcpy.S +21 −11
  2702. arch/sparc/lib/multi3.S +12 −12
  2703. arch/sparc/mm/gup.c +44 −1
  2704. arch/sparc/mm/hugetlbpage.c +60 −42
  2705. arch/sparc/mm/init_64.c +47 −7
  2706. arch/sparc/net/bpf_jit_comp_64.c +34 −0
  2707. arch/tile/configs/tilegx_defconfig +0 −1
  2708. arch/tile/configs/tilepro_defconfig +0 −2
  2709. arch/tile/include/asm/atomic_32.h +2 −0
  2710. arch/tile/include/asm/dma-mapping.h +2 −2
  2711. arch/tile/include/asm/futex.h +5 −35
  2712. arch/tile/include/asm/spinlock_32.h +0 −2
  2713. arch/tile/include/asm/spinlock_64.h +0 −2
  2714. arch/tile/include/uapi/asm/siginfo.h +2 −2
  2715. arch/tile/kernel/compat_signal.c +8 −10
  2716. arch/tile/kernel/pci.c +16 −23
  2717. arch/tile/kernel/pci_gx.c +16 −19
  2718. arch/tile/kernel/setup.c +2 −2
  2719. arch/tile/kernel/traps.c +1 −1
  2720. arch/tile/lib/spinlock_32.c +0 −23
  2721. arch/tile/lib/spinlock_64.c +0 −22
  2722. arch/um/Kconfig.um +1 −0
  2723. arch/um/Makefile +1 −1
  2724. arch/um/configs/i386_defconfig +0 −1
  2725. arch/um/configs/x86_64_defconfig +0 −1
  2726. arch/um/drivers/mconsole_kern.c +1 −6
  2727. arch/um/include/asm/processor-generic.h +0 −5
  2728. arch/um/include/asm/thread_info.h +3 −0
  2729. arch/um/include/asm/unwind.h +8 −0
  2730. arch/um/include/shared/os.h +1 −1
  2731. arch/um/kernel/gmon_syms.c +7 −0
  2732. arch/um/kernel/process.c +2 −2
  2733. arch/um/os-Linux/drivers/tuntap_user.c +1 −1
  2734. arch/um/os-Linux/skas/process.c +8 −9
  2735. arch/um/os-Linux/start_up.c +3 −3
  2736. arch/unicore32/kernel/pci.c +31 −4
  2737. arch/x86/Kbuild +1 −4
  2738. arch/x86/Kconfig +72 −13
  2739. arch/x86/Kconfig.debug +57 −2
  2740. arch/x86/Makefile +8 −9
  2741. arch/x86/boot/compressed/eboot.c +8 −5
  2742. arch/x86/boot/compressed/head_32.S +64 −65
  2743. arch/x86/boot/compressed/head_64.S +53 −59
  2744. arch/x86/boot/compressed/kaslr.c +120 −27
  2745. arch/x86/boot/compressed/misc.c +1 −2
  2746. arch/x86/boot/compressed/pagetable.c +7 −0
  2747. arch/x86/boot/header.S +7 −1
  2748. arch/x86/configs/tiny.config +2 −0
  2749. arch/x86/crypto/aesni-intel_glue.c +2 −2
  2750. arch/x86/crypto/blowfish-x86_64-asm_64.S +26 −22
  2751. arch/x86/crypto/blowfish_glue.c +1 −2
  2752. arch/x86/crypto/camellia-x86_64-asm_64.S +13 −13
  2753. arch/x86/crypto/cast5-avx-x86_64-asm_64.S +30 −17
  2754. arch/x86/crypto/cast5_avx_glue.c +1 −2
  2755. arch/x86/crypto/cast6-avx-x86_64-asm_64.S +34 −16
  2756. arch/x86/crypto/des3_ede-asm_64.S +9 −6
  2757. arch/x86/crypto/des3_ede_glue.c +1 −2
  2758. arch/x86/crypto/sha1_avx2_x86_64_asm.S +37 −34
  2759. arch/x86/crypto/sha1_ssse3_asm.S +5 −6
  2760. arch/x86/crypto/sha1_ssse3_glue.c +1 −1
  2761. arch/x86/crypto/sha256-avx-asm.S +7 −8
  2762. arch/x86/crypto/sha256-avx2-asm.S +7 −15
  2763. arch/x86/crypto/sha256-ssse3-asm.S +7 −8
  2764. arch/x86/crypto/sha512-avx2-asm.S +39 −36
  2765. arch/x86/crypto/twofish-avx-x86_64-asm_64.S +6 −6
  2766. arch/x86/entry/Makefile +0 −1
  2767. arch/x86/entry/calling.h +5 −0
  2768. arch/x86/entry/common.c +3 −0
  2769. arch/x86/entry/entry_32.S +2 −18
  2770. arch/x86/entry/entry_64.S +151 −88
  2771. arch/x86/entry/entry_64_compat.S +5 −7
  2772. arch/x86/entry/vdso/vma.c +1 −1
  2773. arch/x86/events/amd/uncore.c +17 −4
  2774. arch/x86/events/core.c +55 −25
  2775. arch/x86/events/intel/Makefile +1 −1
  2776. arch/x86/events/intel/bts.c +2 −2
  2777. arch/x86/events/intel/core.c +99 −8
  2778. arch/x86/events/intel/cqm.c +0 −1766
  2779. arch/x86/events/intel/ds.c +34 −24
  2780. arch/x86/events/intel/lbr.c +51 −1
  2781. arch/x86/events/intel/p4.c +1 −1
  2782. arch/x86/events/intel/pt.c +3 −2
  2783. arch/x86/events/intel/rapl.c +1 −1
  2784. arch/x86/events/intel/uncore.c +1 −1
  2785. arch/x86/events/intel/uncore_nhmex.c +6 −6
  2786. arch/x86/events/intel/uncore_snb.c +3 −3
  2787. arch/x86/events/intel/uncore_snbep.c +21 −21
  2788. arch/x86/events/perf_event.h +8 −2
  2789. arch/x86/hyperv/Makefile +1 −1
  2790. arch/x86/hyperv/hv_init.c +40 −50
  2791. arch/x86/hyperv/mmu.c +272 −0
  2792. arch/x86/ia32/ia32_aout.c +2 −2
  2793. arch/x86/ia32/ia32_signal.c +1 −1
  2794. arch/x86/include/asm/acpi.h +6 −7
  2795. arch/x86/include/asm/alternative.h +1 −2
  2796. arch/x86/include/asm/asm.h +17 −0
  2797. arch/x86/include/asm/atomic.h +46 −23
  2798. arch/x86/include/asm/atomic64_32.h +57 −24
  2799. arch/x86/include/asm/atomic64_64.h +47 −26
  2800. arch/x86/include/asm/cacheflush.h +0 −2
  2801. arch/x86/include/asm/cmdline.h +2 −0
  2802. arch/x86/include/asm/cmpxchg.h +1 −1
  2803. arch/x86/include/asm/cpufeatures.h +4 −2
  2804. arch/x86/include/asm/desc.h +47 −204
  2805. arch/x86/include/asm/desc_defs.h +66 −56
  2806. arch/x86/include/asm/disabled-features.h +3 −1
  2807. arch/x86/include/asm/dma-mapping.h +3 −2
  2808. arch/x86/include/asm/dmi.h +4 −4
  2809. arch/x86/include/asm/e820/api.h +2 −0
  2810. arch/x86/include/asm/elf.h +12 −11
  2811. arch/x86/include/asm/entry_arch.h +6 −11
  2812. arch/x86/include/asm/fixmap.h +20 −0
  2813. arch/x86/include/asm/fpu/internal.h +3 −3
  2814. arch/x86/include/asm/futex.h +5 −35
  2815. arch/x86/include/asm/hw_irq.h +0 −20
  2816. arch/x86/include/asm/init.h +1 −0
  2817. arch/x86/include/asm/intel_rdt.h +0 −286
  2818. arch/x86/include/asm/intel_rdt_common.h +0 −27
  2819. arch/x86/include/asm/intel_rdt_sched.h +92 −0
  2820. arch/x86/include/asm/io.h +55 −51
  2821. arch/x86/include/asm/irq.h +0 −4
  2822. arch/x86/include/asm/irq_work.h +8 −0
  2823. arch/x86/include/asm/kexec.h +10 −1
  2824. arch/x86/include/asm/kvm_emulate.h +2 −2
  2825. arch/x86/include/asm/kvm_host.h +18 −30
  2826. arch/x86/include/asm/lguest.h +0 −91
  2827. arch/x86/include/asm/lguest_hcall.h +0 −74
  2828. arch/x86/include/asm/mem_encrypt.h +80 −0
  2829. arch/x86/include/asm/mmu.h +23 −2
  2830. arch/x86/include/asm/mmu_context.h +39 −6
  2831. arch/x86/include/asm/module.h +9 −0
  2832. arch/x86/include/asm/mpspec.h +0 −1
  2833. arch/x86/include/asm/mpx.h +9 −0
  2834. arch/x86/include/asm/mshyperv.h +146 −1
  2835. arch/x86/include/asm/msr-index.h +2 −0
  2836. arch/x86/include/asm/orc_lookup.h +46 −0
  2837. arch/x86/include/asm/orc_types.h +107 −0
  2838. arch/x86/include/asm/page_64.h +4 −0
  2839. arch/x86/include/asm/page_types.h +2 −1
  2840. arch/x86/include/asm/paravirt.h +0 −42
  2841. arch/x86/include/asm/paravirt_types.h +7 −19
  2842. arch/x86/include/asm/pgtable.h +42 −30
  2843. arch/x86/include/asm/pgtable_64.h +11 −3
  2844. arch/x86/include/asm/pgtable_types.h +48 −20
  2845. arch/x86/include/asm/preempt.h +5 −10
  2846. arch/x86/include/asm/processor-flags.h +8 −5
  2847. arch/x86/include/asm/processor.h +22 −9
  2848. arch/x86/include/asm/proto.h +3 −0
  2849. arch/x86/include/asm/ptrace.h +37 −6
  2850. arch/x86/include/asm/realmode.h +12 −0
  2851. arch/x86/include/asm/refcount.h +109 −0
  2852. arch/x86/include/asm/rmwcc.h +24 −13
  2853. arch/x86/include/asm/rwsem.h +2 −2
  2854. arch/x86/include/asm/segment.h +1 −3
  2855. arch/x86/include/asm/set_memory.h +3 −0
  2856. arch/x86/include/asm/setup.h +1 −0
  2857. arch/x86/include/asm/special_insns.h +5 −5
  2858. arch/x86/include/asm/string_32.h +24 −0
  2859. arch/x86/include/asm/string_64.h +36 −0
  2860. arch/x86/include/asm/svm.h +6 −0
  2861. arch/x86/include/asm/thread_info.h +4 −1
  2862. arch/x86/include/asm/tlb.h +14 −0
  2863. arch/x86/include/asm/tlbflush.h +82 −7
  2864. arch/x86/include/asm/topology.h +0 −6
  2865. arch/x86/include/asm/trace/common.h +16 −0
  2866. arch/x86/include/asm/trace/exceptions.h +4 −4
  2867. arch/x86/include/asm/trace/hyperv.h +40 −0
  2868. arch/x86/include/asm/trace/irq_vectors.h +39 −12
  2869. arch/x86/include/asm/traps.h +23 −27
  2870. arch/x86/include/asm/uaccess.h +8 −3
  2871. arch/x86/include/asm/unwind.h +47 −29
  2872. arch/x86/include/asm/unwind_hints.h +105 −0
  2873. arch/x86/include/asm/vga.h +13 −1
  2874. arch/x86/include/asm/vmx.h +17 −5
  2875. arch/x86/include/asm/xen/hypercall.h +6 −5
  2876. arch/x86/include/asm/xen/page.h +0 −5
  2877. arch/x86/include/uapi/asm/bootparam.h +1 −1
  2878. arch/x86/include/uapi/asm/hyperv.h +15 −4
  2879. arch/x86/include/uapi/asm/mman.h +0 −3
  2880. arch/x86/kernel/Makefile +5 −6
  2881. arch/x86/kernel/acpi/boot.c +12 −9
  2882. arch/x86/kernel/alternative.c +16 −6
  2883. arch/x86/kernel/apic/apic.c +20 −60
  2884. arch/x86/kernel/apic/io_apic.c +1 −1
  2885. arch/x86/kernel/apic/vector.c +1 −1
  2886. arch/x86/kernel/apm_32.c +1 −1
  2887. arch/x86/kernel/asm-offsets_32.c +0 −20
  2888. arch/x86/kernel/asm-offsets_64.c +0 −1
  2889. arch/x86/kernel/cpu/Makefile +1 −1
  2890. arch/x86/kernel/cpu/amd.c +54 −12
  2891. arch/x86/kernel/cpu/aperfmperf.c +3 −0
  2892. arch/x86/kernel/cpu/common.c +28 −9
  2893. arch/x86/kernel/cpu/intel_cacheinfo.c +18 −14
  2894. arch/x86/kernel/cpu/intel_rdt.c +314 −61
  2895. arch/x86/kernel/cpu/intel_rdt.h +440 −0
  2896. arch/x86/kernel/cpu/intel_rdt_ctrlmondata.c +61 −6
  2897. arch/x86/kernel/cpu/intel_rdt_monitor.c +499 −0
  2898. arch/x86/kernel/cpu/intel_rdt_rdtgroup.c +925 −206
  2899. arch/x86/kernel/cpu/mcheck/mce.c +43 −0
  2900. arch/x86/kernel/cpu/mcheck/mce_amd.c +4 −21
  2901. arch/x86/kernel/cpu/mcheck/therm_throt.c +4 −18
  2902. arch/x86/kernel/cpu/mcheck/threshold.c +2 −14
  2903. arch/x86/kernel/cpu/microcode/amd.c +4 −1
  2904. arch/x86/kernel/cpu/microcode/core.c +2 −2
  2905. arch/x86/kernel/cpu/microcode/intel.c +14 −13
  2906. arch/x86/kernel/cpu/mshyperv.c +12 −10
  2907. arch/x86/kernel/cpu/mtrr/main.c +15 −3
  2908. arch/x86/kernel/cpu/scattered.c +1 −0
  2909. arch/x86/kernel/dumpstack.c +8 −6
  2910. arch/x86/kernel/dumpstack_32.c +2 −2
  2911. arch/x86/kernel/dumpstack_64.c +2 −2
  2912. arch/x86/kernel/e820.c +23 −3
  2913. arch/x86/kernel/early-quirks.c +2 −2
  2914. arch/x86/kernel/eisa.c +19 −0
  2915. arch/x86/kernel/espfix_64.c +1 −1
  2916. arch/x86/kernel/head32.c +4 −0
  2917. arch/x86/kernel/head64.c +83 −23
  2918. arch/x86/kernel/head_32.S +11 −55
  2919. arch/x86/kernel/head_64.S +28 −12
  2920. arch/x86/kernel/idt.c +371 −0
  2921. arch/x86/kernel/io_delay.c +1 −1
  2922. arch/x86/kernel/irq.c +12 −28
  2923. arch/x86/kernel/irq_work.c +4 −16
  2924. arch/x86/kernel/irqinit.c +1 −101
  2925. arch/x86/kernel/kdebugfs.c +11 −23
  2926. arch/x86/kernel/kprobes/opt.c +6 −3
  2927. arch/x86/kernel/ksysfs.c +16 −16
  2928. arch/x86/kernel/kvm.c +3 −3
  2929. arch/x86/kernel/ldt.c +21 −0
  2930. arch/x86/kernel/machine_kexec_32.c +1 −13
  2931. arch/x86/kernel/machine_kexec_64.c +23 −2
  2932. arch/x86/kernel/module.c +10 −1
  2933. arch/x86/kernel/mpparse.c +75 −33
  2934. arch/x86/kernel/nmi.c +9 −9
  2935. arch/x86/kernel/paravirt.c +0 −8
  2936. arch/x86/kernel/pci-dma.c +7 −4
  2937. arch/x86/kernel/pci-nommu.c +1 −1
  2938. arch/x86/kernel/pci-swiotlb.c +13 −2
  2939. arch/x86/kernel/platform-quirks.c +0 −1
  2940. arch/x86/kernel/process.c +15 −2
  2941. arch/x86/kernel/process_32.c +2 −2
  2942. arch/x86/kernel/process_64.c +136 −108
  2943. arch/x86/kernel/quirks.c +10 −0
  2944. arch/x86/kernel/reboot.c +2 −4
  2945. arch/x86/kernel/relocate_kernel_64.S +14 −0
  2946. arch/x86/kernel/setup.c +20 −3
  2947. arch/x86/kernel/setup_percpu.c +4 −7
  2948. arch/x86/kernel/signal.c +1 −1
  2949. arch/x86/kernel/signal_compat.c +9 −12
  2950. arch/x86/kernel/smp.c +21 −60
  2951. arch/x86/kernel/smpboot.c +30 −23
  2952. arch/x86/kernel/step.c +1 −1
  2953. arch/x86/kernel/sys_x86_64.c +26 −4
  2954. arch/x86/kernel/tls.c +1 −1
  2955. arch/x86/kernel/tracepoint.c +19 −38
  2956. arch/x86/kernel/traps.c +3 −104
  2957. arch/x86/kernel/unwind_frame.c +16 −25
  2958. arch/x86/kernel/unwind_guess.c +5 −0
  2959. arch/x86/kernel/unwind_orc.c +582 −0
  2960. arch/x86/kernel/vmlinux.lds.S +3 −0
  2961. arch/x86/kvm/Kconfig +0 −1
  2962. arch/x86/kvm/cpuid.c +25 −11
  2963. arch/x86/kvm/cpuid.h +63 −122
  2964. arch/x86/kvm/emulate.c +30 −17
  2965. arch/x86/kvm/hyperv.c +7 −1
  2966. arch/x86/kvm/kvm_cache_regs.h +1 −6
  2967. arch/x86/kvm/lapic.c +4 −2
  2968. arch/x86/kvm/lapic.h +3 −0
  2969. arch/x86/kvm/mmu.c +207 −101
  2970. arch/x86/kvm/mmu.h +6 −19
  2971. arch/x86/kvm/mmu_audit.c +2 −2
  2972. arch/x86/kvm/mtrr.c +1 −1
  2973. arch/x86/kvm/paging_tmpl.h +3 −3
  2974. arch/x86/kvm/svm.c +125 −96
  2975. arch/x86/kvm/trace.h +7 −4
  2976. arch/x86/kvm/vmx.c +581 −274
  2977. arch/x86/kvm/x86.c +184 −111
  2978. arch/x86/kvm/x86.h +51 −3
  2979. arch/x86/lguest/Kconfig +0 −14
  2980. arch/x86/lguest/Makefile +0 −2
  2981. arch/x86/lguest/boot.c +0 −1558
  2982. arch/x86/lguest/head_32.S +0 −192
  2983. arch/x86/lib/cmdline.c +105 −0
  2984. arch/x86/math-emu/div_Xsig.S +1 −0
  2985. arch/x86/math-emu/div_small.S +1 −1
  2986. arch/x86/math-emu/fpu_entry.c +5 −6
  2987. arch/x86/math-emu/fpu_system.h +37 −11
  2988. arch/x86/math-emu/get_address.c +9 −8
  2989. arch/x86/math-emu/mul_Xsig.S +3 −1
  2990. arch/x86/math-emu/polynom_Xsig.S +1 −0
  2991. arch/x86/math-emu/reg_norm.S +2 −0
  2992. arch/x86/math-emu/reg_round.S +2 −0
  2993. arch/x86/math-emu/reg_u_add.S +1 −0
  2994. arch/x86/math-emu/reg_u_div.S +2 −0
  2995. arch/x86/math-emu/reg_u_mul.S +1 −0
  2996. arch/x86/math-emu/reg_u_sub.S +1 −0
  2997. arch/x86/math-emu/round_Xsig.S +2 −2
  2998. arch/x86/math-emu/shr_Xsig.S +1 −0
  2999. arch/x86/math-emu/wm_shrx.S +2 −0
  3000. arch/x86/math-emu/wm_sqrt.S +1 −0
  3001. arch/x86/mm/Makefile +2 −0
  3002. arch/x86/mm/dump_pagetables.c +56 −37
  3003. arch/x86/mm/extable.c +43 −1
  3004. arch/x86/mm/fault.c +29 −49
  3005. arch/x86/mm/hugetlbpage.c +23 −4
  3006. arch/x86/mm/ident_map.c +8 −4
  3007. arch/x86/mm/init.c +35 −1
  3008. arch/x86/mm/init_64.c +15 −7
  3009. arch/x86/mm/ioremap.c +269 −18
  3010. arch/x86/mm/kasan_init_64.c +3 −3
  3011. arch/x86/mm/mem_encrypt.c +593 −0
  3012. arch/x86/mm/mem_encrypt_boot.S +149 −0
  3013. arch/x86/mm/mmap.c +9 −10
  3014. arch/x86/mm/mpx.c +32 −1
  3015. arch/x86/mm/numa_emulation.c +32 −23
  3016. arch/x86/mm/pageattr.c +67 −0
  3017. arch/x86/mm/pat.c +6 −3
  3018. arch/x86/mm/pgtable.c +5 −10
  3019. arch/x86/mm/tlb.c +304 −78
  3020. arch/x86/net/bpf_jit_comp.c +30 −5
  3021. arch/x86/pci/common.c +2 −2
  3022. arch/x86/pci/fixup.c +17 −0
  3023. arch/x86/pci/intel_mid_pci.c +10 −2
  3024. arch/x86/pci/irq.c +1 −1
  3025. arch/x86/platform/efi/efi.c +0 −19
  3026. arch/x86/platform/efi/efi_64.c +11 −4
  3027. arch/x86/platform/intel-mid/device_libs/platform_bt.c +1 −1
  3028. arch/x86/platform/intel-mid/device_libs/platform_mrfld_wdt.c +3 −3
  3029. arch/x86/platform/intel-mid/device_libs/platform_tc35876x.c +1 −1
  3030. arch/x86/platform/intel-mid/intel-mid.c +1 −1
  3031. arch/x86/platform/intel-mid/pwr.c +2 −2
  3032. arch/x86/platform/uv/tlb_uv.c +2 −2
  3033. arch/x86/power/cpu.c +2 −1
  3034. arch/x86/power/hibernate_64.c +20 −1
  3035. arch/x86/realmode/init.c +12 −0
  3036. arch/x86/realmode/rm/trampoline_64.S +24 −0
  3037. arch/x86/um/os-Linux/registers.c +12 −6
  3038. arch/x86/um/os-Linux/tls.c +1 −1
  3039. arch/x86/um/user-offsets.c +2 −2
  3040. arch/x86/xen/Kconfig +5 −0
  3041. arch/x86/xen/enlighten_pv.c +79 −99
  3042. arch/x86/xen/irq.c +0 −3
  3043. arch/x86/xen/mmu.c +1 −1
  3044. arch/x86/xen/mmu_pv.c +3 −26
  3045. arch/x86/xen/p2m.c +1 −24
  3046. arch/x86/xen/setup.c +1 −4
  3047. arch/x86/xen/xen-asm.S +6 −20
  3048. arch/x86/xen/xen-asm.h +0 −12
  3049. arch/x86/xen/xen-asm_32.S +5 −22
  3050. arch/x86/xen/xen-asm_64.S +68 −34
  3051. arch/x86/xen/xen-head.S +1 −1
  3052. arch/x86/xen/xen-ops.h +4 −12
  3053. arch/xtensa/include/asm/futex.h +5 −22
  3054. arch/xtensa/include/asm/processor.h +0 −5
  3055. arch/xtensa/include/asm/spinlock.h +0 −5
  3056. arch/xtensa/include/uapi/asm/mman.h +3 −11
  3057. arch/xtensa/include/uapi/asm/socket.h +2 −0
  3058. arch/xtensa/kernel/setup.c +3 −3
  3059. block/Kconfig +5 −0
  3060. block/Makefile +1 −0
  3061. block/bfq-cgroup.c +9 −9
  3062. block/bfq-iosched.c +142 −101
  3063. block/bfq-iosched.h +16 −13
  3064. block/bfq-wf2q.c +56 −35
  3065. block/bio-integrity.c +12 −14
  3066. block/bio.c +18 −14
  3067. block/blk-cgroup.c +5 −3
  3068. block/blk-core.c +87 −73
  3069. block/blk-flush.c +13 −13
  3070. block/blk-lib.c +6 −6
  3071. block/blk-merge.c +3 −3
  3072. block/blk-mq-debugfs.c +4 −3
  3073. block/blk-mq-pci.c +7 −1
  3074. block/blk-mq-rdma.c +52 −0
  3075. block/blk-mq-tag.c +17 −6
  3076. block/blk-mq.c +67 −8
  3077. block/blk-mq.h +4 −0
  3078. block/blk-settings.c +1 −0
  3079. block/blk-softirq.c +1 −1
  3080. block/blk-sysfs.c +2 −0
  3081. block/blk-tag.c +0 −1
  3082. block/blk-throttle.c +17 −14
  3083. block/blk-zoned.c +2 −2
  3084. block/blk.h +2 −1
  3085. block/bsg-lib.c +48 −33
  3086. block/bsg.c +0 −7
  3087. block/cfq-iosched.c +44 −68
  3088. block/compat_ioctl.c +1 −1
  3089. block/deadline-iosched.c +4 −5
  3090. block/elevator.c +4 −0
  3091. block/genhd.c +84 −25
  3092. block/mq-deadline.c +5 −5
  3093. block/opal_proto.h +1 −0
  3094. block/partition-generic.c +17 −6
  3095. block/sed-opal.c +32 −0
  3096. crypto/Kconfig +2 −0
  3097. crypto/af_alg.c +691 −0
  3098. crypto/ahash.c +29 −0
  3099. crypto/algapi.c +15 −10
  3100. crypto/algif_aead.c +250 −614
  3101. crypto/algif_skcipher.c +132 −697
  3102. crypto/chacha20_generic.c +7 −2
  3103. crypto/ctr.c +1 −2
  3104. crypto/drbg.c +4 −4
  3105. crypto/ecdh.c +33 −18
  3106. crypto/pcbc.c +4 −8
  3107. crypto/rng.c +4 −2
  3108. crypto/scompress.c +22 −33
  3109. crypto/serpent_generic.c +41 −36
  3110. crypto/tcrypt.c +4 −4
  3111. crypto/testmgr.h +7 −0
  3112. drivers/Makefile +0 −1
  3113. drivers/acpi/Makefile +1 −0
  3114. drivers/acpi/acpi_lpat.c +3 −3
  3115. drivers/acpi/acpi_lpss.c +2 −1
  3116. drivers/acpi/acpi_processor.c +1 −1
  3117. drivers/acpi/acpi_video.c +1 −1
  3118. drivers/acpi/acpi_watchdog.c +1 −1
  3119. drivers/acpi/acpica/Makefile +1 −0
  3120. drivers/acpi/acpica/acapps.h +2 −0
  3121. drivers/acpi/acpica/acdispat.h +13 −0
  3122. drivers/acpi/acpica/aclocal.h +4 −3
  3123. drivers/acpi/acpica/acobject.h +11 −4
  3124. drivers/acpi/acpica/actables.h +4 −1
  3125. drivers/acpi/acpica/acutils.h +8 −1
  3126. drivers/acpi/acpica/dbdisply.c +32 −5
  3127. drivers/acpi/acpica/dsfield.c +2 −0
  3128. drivers/acpi/acpica/dsobject.c +67 −331
  3129. drivers/acpi/acpica/dsopcode.c +9 −0
  3130. drivers/acpi/acpica/dspkginit.c +496 −0
  3131. drivers/acpi/acpica/evgpeblk.c +21 −9
  3132. drivers/acpi/acpica/evxfgpe.c +8 −0
  3133. drivers/acpi/acpica/excreate.c +17 −45
  3134. drivers/acpi/acpica/exdump.c +26 −8
  3135. drivers/acpi/acpica/exmisc.c +9 −0
  3136. drivers/acpi/acpica/exoparg2.c +3 −0
  3137. drivers/acpi/acpica/hwregs.c +1 −1
  3138. drivers/acpi/acpica/hwxfsleep.c +6 −3
  3139. drivers/acpi/acpica/nsaccess.c +22 −6
  3140. drivers/acpi/acpica/nsarguments.c +17 −4
  3141. drivers/acpi/acpica/nsinit.c +14 −0
  3142. drivers/acpi/acpica/nsnames.c +8 −1
  3143. drivers/acpi/acpica/nsprepkg.c +2 −0
  3144. drivers/acpi/acpica/nsxfeval.c +7 −3
  3145. drivers/acpi/acpica/psloop.c +14 −0
  3146. drivers/acpi/acpica/psobject.c +26 −0
  3147. drivers/acpi/acpica/rsxface.c +4 −3
  3148. drivers/acpi/acpica/tbdata.c +205 −25
  3149. drivers/acpi/acpica/tbinstal.c +22 −139
  3150. drivers/acpi/acpica/tbxface.c +34 −5
  3151. drivers/acpi/acpica/tbxfload.c +1 −1
  3152. drivers/acpi/acpica/uthex.c +3 −1
  3153. drivers/acpi/acpica/utmath.c +213 −9
  3154. drivers/acpi/acpica/utmisc.c +7 −3
  3155. drivers/acpi/acpica/utobject.c +5 −0
  3156. drivers/acpi/acpica/utprint.c +4 −4
  3157. drivers/acpi/acpica/utresrc.c +7 −0
  3158. drivers/acpi/acpica/utstate.c +1 −1
  3159. drivers/acpi/acpica/utstrtoul64.c +4 −5
  3160. drivers/acpi/acpica/uttrack.c +7 −2
  3161. drivers/acpi/apei/apei-internal.h +0 −5
  3162. drivers/acpi/apei/einj.c +1 −1
  3163. drivers/acpi/apei/ghes.c +8 −2
  3164. drivers/acpi/apei/hest.c +7 −6
  3165. drivers/acpi/arm64/iort.c +142 −55
  3166. drivers/acpi/battery.c +1 −1
  3167. drivers/acpi/blacklist.c +16 −71
  3168. drivers/acpi/bus.c +2 −5
  3169. drivers/acpi/device_pm.c +123 −52
  3170. drivers/acpi/dock.c +1 −1
  3171. drivers/acpi/ec.c +34 −31
  3172. drivers/acpi/internal.h +6 −1
  3173. drivers/acpi/nfit/Kconfig +1 −1
  3174. drivers/acpi/nfit/core.c +45 −7
  3175. drivers/acpi/osi.c +9 −30
  3176. drivers/acpi/pci_root.c +2 −2
  3177. drivers/acpi/pci_slot.c +1 −1
  3178. drivers/acpi/pmic/intel_pmic_xpower.c +18 −3
  3179. drivers/acpi/processor_driver.c +1 −1
  3180. drivers/acpi/processor_idle.c +16 −9
  3181. drivers/acpi/processor_pdc.c +1 −1
  3182. drivers/acpi/property.c +158 −87
  3183. drivers/acpi/resource.c +63 −19
  3184. drivers/acpi/sbs.c +3 −24
  3185. drivers/acpi/scan.c +94 −14
  3186. drivers/acpi/sleep.c +190 −16
  3187. drivers/acpi/spcr.c +26 −10
  3188. drivers/acpi/sysfs.c +88 −3
  3189. drivers/acpi/tables.c +2 −2
  3190. drivers/acpi/thermal.c +1 −1
  3191. drivers/acpi/utils.c +36 −0
  3192. drivers/acpi/video_detect.c +14 −0
  3193. drivers/acpi/x86/apple.c +141 −0
  3194. drivers/android/Kconfig +12 −2
  3195. drivers/android/Makefile +2 −1
  3196. drivers/android/binder.c +2557 −1313
  3197. drivers/android/binder_alloc.c +1009 −0
  3198. drivers/android/binder_alloc.h +187 −0
  3199. drivers/android/binder_alloc_selftest.c +310 −0
  3200. drivers/android/binder_trace.h +77 −19
  3201. drivers/ata/Kconfig +10 −0
  3202. drivers/ata/Makefile +1 −0
  3203. drivers/ata/ahci.c +8 −1
  3204. drivers/ata/ahci_da850.c +6 −2
  3205. drivers/ata/ahci_mtk.c +196 −0
  3206. drivers/ata/ahci_platform.c +1 −0
  3207. drivers/ata/libahci_platform.c +34 −0
  3208. drivers/ata/libata-core.c +3 −0
  3209. drivers/ata/libata-eh.c +3 −5
  3210. drivers/ata/libata-zpodd.c +2 −2
  3211. drivers/ata/pata_amd.c +1 −0
  3212. drivers/ata/pata_cs5536.c +1 −0
  3213. drivers/ata/pata_octeon_cf.c +4 −6
  3214. drivers/ata/sata_gemini.c +34 −33
  3215. drivers/ata/sata_svw.c +1 −1
  3216. drivers/atm/adummy.c +2 −2
  3217. drivers/atm/ambassador.c +1 −1
  3218. drivers/atm/atmtcp.c +1 −1
  3219. drivers/atm/eni.c +1 −1
  3220. drivers/atm/firestream.c +1 −1
  3221. drivers/atm/fore200e.c +1 −1
  3222. drivers/atm/he.c +2 −2
  3223. drivers/atm/horizon.c +1 −1
  3224. drivers/atm/idt77252.c +2 −2
  3225. drivers/atm/iphase.c +1 −1
  3226. drivers/atm/lanai.c +1 −1
  3227. drivers/atm/nicstar.c +2 −2
  3228. drivers/atm/solos-pci.c +4 −4
  3229. drivers/atm/zatm.c +1 −1
  3230. drivers/auxdisplay/panel.c +3 −3
  3231. drivers/base/Kconfig +1 −4
  3232. drivers/base/arch_topology.c +43 −43
  3233. drivers/base/base.h +0 −5
  3234. drivers/base/bus.c +1 −1
  3235. drivers/base/core.c +137 −4
  3236. drivers/base/cpu.c +2 −2
  3237. drivers/base/dd.c +31 −1
  3238. drivers/base/dma-coherent.c +39 −49
  3239. drivers/base/dma-mapping.c +2 −5
  3240. drivers/base/firmware_class.c +10 −102
  3241. drivers/base/memory.c +20 −10
  3242. drivers/base/node.c +15 −7
  3243. drivers/base/power/domain.c +234 −17
  3244. drivers/base/power/main.c +70 −42
  3245. drivers/base/power/opp/of.c +23 −14
  3246. drivers/base/power/qos.c +5 −5
  3247. drivers/base/power/wakeup.c +6 −4
  3248. drivers/base/property.c +85 −46
  3249. drivers/base/topology.c +1 −1
  3250. drivers/bcma/Kconfig +2 −7
  3251. drivers/bcma/driver_gpio.c +1 −0
  3252. drivers/block/DAC960.c +8 −4
  3253. drivers/block/Kconfig +2 −28
  3254. drivers/block/Makefile +0 −1
  3255. drivers/block/brd.c +7 −4
  3256. drivers/block/cciss.c +0 −5415
  3257. drivers/block/cciss.h +0 −433
  3258. drivers/block/cciss_cmd.h +0 −269
  3259. drivers/block/cciss_scsi.c +0 −1653
  3260. drivers/block/cciss_scsi.h +0 −79
  3261. drivers/block/drbd/drbd_actlog.c +1 −1
  3262. drivers/block/drbd/drbd_bitmap.c +1 −1
  3263. drivers/block/drbd/drbd_int.h +14 −17
  3264. drivers/block/drbd/drbd_main.c +62 −51
  3265. drivers/block/drbd/drbd_nl.c +24 −36
  3266. drivers/block/drbd/drbd_proc.c +5 −5
  3267. drivers/block/drbd/drbd_receiver.c +52 −8
  3268. drivers/block/drbd/drbd_req.c +77 −9
  3269. drivers/block/drbd/drbd_req.h +6 −0
  3270. drivers/block/drbd/drbd_state.c +47 −1
  3271. drivers/block/drbd/drbd_state.h +8 −0
  3272. drivers/block/drbd/drbd_worker.c +38 −10
  3273. drivers/block/floppy.c +1 −1
  3274. drivers/block/loop.c +118 −131
  3275. drivers/block/loop.h +5 −4
  3276. drivers/block/nbd.c +12 −3
  3277. drivers/block/null_blk.c +1215 −96
  3278. drivers/block/pktcdvd.c +5 −6
  3279. drivers/block/ps3vram.c +6 −4
  3280. drivers/block/rbd.c +1 −1
  3281. drivers/block/rsxx/dev.c +3 −3
  3282. drivers/block/skd_main.c +808 −2402
  3283. drivers/block/skd_s1120.h +16 −22
  3284. drivers/block/virtio_blk.c +11 −7
  3285. drivers/block/xen-blkback/blkback.c +5 −4
  3286. drivers/block/xen-blkback/xenbus.c +10 −3
  3287. drivers/block/xen-blkfront.c +4 −4
  3288. drivers/block/zram/Kconfig +12 −0
  3289. drivers/block/zram/zram_drv.c +464 −94
  3290. drivers/block/zram/zram_drv.h +10 −1
  3291. drivers/bluetooth/Kconfig +2 −0
  3292. drivers/bluetooth/ath3k.c +2 −1
  3293. drivers/bluetooth/bluecard_cs.c +27 −31
  3294. drivers/bluetooth/bt3c_cs.c +5 −3
  3295. drivers/bluetooth/btbcm.c +39 −30
  3296. drivers/bluetooth/btmrvl_sdio.c +4 −2
  3297. drivers/bluetooth/btqca.c +1 −1
  3298. drivers/bluetooth/btrtl.c +2 −0
  3299. drivers/bluetooth/btsdio.c +2 −1
  3300. drivers/bluetooth/btuart_cs.c +5 −3
  3301. drivers/bluetooth/btusb.c +60 −8
  3302. drivers/bluetooth/btwilink.c +4 −4
  3303. drivers/bluetooth/hci_bcm.c +115 −18
  3304. drivers/bluetooth/hci_h4.c +1 −1
  3305. drivers/bluetooth/hci_ldisc.c +2 −1
  3306. drivers/bluetooth/hci_ll.c +3 −8
  3307. drivers/bluetooth/hci_nokia.c +1 −9
  3308. drivers/bluetooth/hci_serdev.c +13 −0
  3309. drivers/bluetooth/hci_uart.h +1 −0
  3310. drivers/bus/Kconfig +1 −1
  3311. drivers/bus/arm-cci.c +6 −6
  3312. drivers/bus/imx-weim.c +4 −4
  3313. drivers/bus/omap-ocp2scp.c +7 −2
  3314. drivers/bus/sunxi-rsb.c +11 −11
  3315. drivers/char/Kconfig +1 −1
  3316. drivers/char/applicom.c +1 −1
  3317. drivers/char/hw_random/Kconfig +16 −4
  3318. drivers/char/hw_random/Makefile +1 −0
  3319. drivers/char/hw_random/core.c +36 −6
  3320. drivers/char/hw_random/imx-rngc.c +331 −0
  3321. drivers/char/ipmi/ipmi_si_intf.c +7 −5
  3322. drivers/char/mwave/smapi.c +25 −23
  3323. drivers/char/ppdev.c +0 −3
  3324. drivers/char/sonypi.c +1 −1
  3325. drivers/char/tlclk.c +1 −1
  3326. drivers/char/tpm/tpm-chip.c +2 −9
  3327. drivers/char/tpm/tpm-interface.c +5 −5
  3328. drivers/char/tpm/tpm.h +8 −1
  3329. drivers/char/tpm/tpm2-cmd.c +1 −1
  3330. drivers/char/tpm/tpm_crb.c +1 −1
  3331. drivers/char/tpm/tpm_ibmvtpm.c +61 −37
  3332. drivers/char/tpm/tpm_infineon.c +3 −3
  3333. drivers/char/tpm/tpm_tis_core.c +4 −4
  3334. drivers/char/virtio_console.c +2 −5
  3335. drivers/char/xilinx_hwicap/xilinx_hwicap.c +21 −18
  3336. drivers/char/xilinx_hwicap/xilinx_hwicap.h +9 −4
  3337. drivers/clk/Kconfig +12 −5
  3338. drivers/clk/Makefile +2 −1
  3339. drivers/clk/at91/Makefile +1 −0
  3340. drivers/clk/at91/clk-audio-pll.c +536 −0
  3341. drivers/clk/at91/clk-generated.c +82 −19
  3342. drivers/clk/axs10x/Makefile +1 −0
  3343. drivers/clk/axs10x/pll_clock.c +346 −0
  3344. drivers/clk/berlin/bg2.c +1 −2
  3345. drivers/clk/berlin/bg2q.c +3 −4
  3346. drivers/clk/clk-asm9260.c +2 −2
  3347. drivers/clk/clk-conf.c +8 −8
  3348. drivers/clk/clk-cs2000-cp.c +10 −4
  3349. drivers/clk/clk-divider.c +4 −2
  3350. drivers/clk/clk-fractional-divider.c +20 −8
  3351. drivers/clk/clk-gate.c +2 −1
  3352. drivers/clk/clk-gemini.c +0 −7
  3353. drivers/clk/clk-hsdk-pll.c +431 −0
  3354. drivers/clk/clk-mb86s7x.c +0 −390
  3355. drivers/clk/clk-moxart.c +8 −8
  3356. drivers/clk/clk-qoriq.c +22 −4
  3357. drivers/clk/clk-si5351.c +5 −7
  3358. drivers/clk/clk-stm32f4.c +2 −2
  3359. drivers/clk/clk-stm32h7.c +1410 −0
  3360. drivers/clk/clk-versaclock5.c +159 −13
  3361. drivers/clk/clk-xgene.c +6 −9
  3362. drivers/clk/clk.c +2 −2
  3363. drivers/clk/clkdev.c +2 −2
  3364. drivers/clk/hisilicon/clk-hi6220.c +3 −3
  3365. drivers/clk/imx/clk-imx51-imx53.c +4 −4
  3366. drivers/clk/imx/clk-imx6sl.c +3 −3
  3367. drivers/clk/imx/clk-imx6sx.c +3 −3
  3368. drivers/clk/imx/clk-imx6ul.c +3 −3
  3369. drivers/clk/imx/clk-imx7d.c +2 −2
  3370. drivers/clk/imx/clk-vf610.c +1 −1
  3371. drivers/clk/mediatek/clk-cpumux.c +1 −5
  3372. drivers/clk/mediatek/clk-mtk.c +1 −1
  3373. drivers/clk/mediatek/reset.c +1 −1
  3374. drivers/clk/meson/Kconfig +1 −0
  3375. drivers/clk/meson/Makefile +1 −1
  3376. drivers/clk/meson/gxbb-aoclk-32k.c +194 −0
  3377. drivers/clk/meson/gxbb-aoclk-regmap.c +46 −0
  3378. drivers/clk/meson/gxbb-aoclk.c +42 −23
  3379. drivers/clk/meson/gxbb-aoclk.h +42 −0
  3380. drivers/clk/meson/gxbb.c +185 −4
  3381. drivers/clk/meson/gxbb.h +14 −111
  3382. drivers/clk/meson/meson8b.c +148 −12
  3383. drivers/clk/meson/meson8b.h +12 −100
  3384. drivers/clk/mmp/clk.c +1 −1
  3385. drivers/clk/nxp/clk-lpc32xx.c +6 −6
  3386. drivers/clk/qcom/clk-smd-rpm.c +0 −2
  3387. drivers/clk/qcom/gcc-msm8916.c +1 −1
  3388. drivers/clk/qcom/gcc-msm8996.c +28 −0
  3389. drivers/clk/renesas/Kconfig +29 −19
  3390. drivers/clk/renesas/Makefile +2 −0
  3391. drivers/clk/renesas/clk-div6.c +3 −0
  3392. drivers/clk/renesas/clk-mstp.c +1 −1
  3393. drivers/clk/renesas/clk-rcar-gen2.c +1 −2
  3394. drivers/clk/renesas/r8a7792-cpg-mssr.c +7 −0
  3395. drivers/clk/renesas/r8a7795-cpg-mssr.c +17 −17
  3396. drivers/clk/renesas/r8a7796-cpg-mssr.c +18 −17
  3397. drivers/clk/renesas/r8a77995-cpg-mssr.c +236 −0
  3398. drivers/clk/renesas/rcar-gen3-cpg.c +41 −28
  3399. drivers/clk/renesas/rcar-gen3-cpg.h +12 −3
  3400. drivers/clk/renesas/rcar-usb2-clock-sel.c +188 −0
  3401. drivers/clk/renesas/renesas-cpg-mssr.c +6 −0
  3402. drivers/clk/renesas/renesas-cpg-mssr.h +1 −0
  3403. drivers/clk/rockchip/clk-rk3128.c +55 −14
  3404. drivers/clk/rockchip/clk-rk3228.c +1 −1
  3405. drivers/clk/rockchip/clk-rv1108.c +381 −81
  3406. drivers/clk/rockchip/clk.c +36 −0
  3407. drivers/clk/samsung/clk-exynos-audss.c +4 −4
  3408. drivers/clk/samsung/clk-exynos5420.c +15 −8
  3409. drivers/clk/sunxi-ng/Kconfig +18 −0
  3410. drivers/clk/sunxi-ng/Makefile +3 −0
  3411. drivers/clk/sunxi-ng/ccu-sun4i-a10.c +1456 −0
  3412. drivers/clk/sunxi-ng/ccu-sun4i-a10.h +61 −0
  3413. drivers/clk/sunxi-ng/ccu-sun5i.c +1 −2
  3414. drivers/clk/sunxi-ng/ccu-sun6i-a31.c +1 −2
  3415. drivers/clk/sunxi-ng/ccu-sun8i-a23.c +1 −2
  3416. drivers/clk/sunxi-ng/ccu-sun8i-a33.c +1 −2
  3417. drivers/clk/sunxi-ng/ccu-sun8i-a83t.c +2 −8
  3418. drivers/clk/sunxi-ng/ccu-sun8i-h3.c +13 −3
  3419. drivers/clk/sunxi-ng/ccu-sun8i-r.c +1 −2
  3420. drivers/clk/sunxi-ng/ccu-sun8i-r.h +1 −1
  3421. drivers/clk/sunxi-ng/ccu-sun8i-r40.c +1290 −0
  3422. drivers/clk/sunxi-ng/ccu-sun8i-r40.h +69 −0
  3423. drivers/clk/sunxi-ng/ccu-sun8i-v3s.c +1 −2
  3424. drivers/clk/sunxi-ng/ccu_common.h +4 −0
  3425. drivers/clk/sunxi-ng/ccu_div.c +19 −3
  3426. drivers/clk/sunxi-ng/ccu_div.h +2 −1
  3427. drivers/clk/sunxi-ng/ccu_frac.c +8 −6
  3428. drivers/clk/sunxi-ng/ccu_frac.h +1 −1
  3429. drivers/clk/sunxi-ng/ccu_mmc_timing.c +70 −0
  3430. drivers/clk/sunxi-ng/ccu_mp.c +80 −0
  3431. drivers/clk/sunxi-ng/ccu_mp.h +30 −0
  3432. drivers/clk/sunxi-ng/ccu_mult.c +7 −3
  3433. drivers/clk/sunxi-ng/ccu_nkm.c +19 −3
  3434. drivers/clk/sunxi-ng/ccu_nkm.h +2 −0
  3435. drivers/clk/sunxi-ng/ccu_nm.c +16 −3
  3436. drivers/clk/sunxi-ng/ccu_reset.c +12 −0
  3437. drivers/clk/sunxi/clk-sun8i-bus-gates.c +4 −0
  3438. drivers/clk/sunxi/clk-sunxi.c +7 −10
  3439. drivers/clk/tegra/clk-emc.c +5 −7
  3440. drivers/clk/tegra/clk-pll.c +38 −121
  3441. drivers/clk/tegra/clk-tegra-periph.c +2 −1
  3442. drivers/clk/tegra/clk-tegra-super-gen4.c +9 −2
  3443. drivers/clk/tegra/clk-tegra210.c +18 −14
  3444. drivers/clk/tegra/clk.h +0 −6
  3445. drivers/clk/ti/adpll.c +2 −2
  3446. drivers/clk/ti/apll.c +1 −1
  3447. drivers/clk/ti/clockdomain.c +2 −2
  3448. drivers/clk/ti/fapll.c +2 −2
  3449. drivers/clk/uniphier/clk-uniphier-core.c +15 −11
  3450. drivers/clk/uniphier/clk-uniphier-mio.c +1 −3
  3451. drivers/clk/uniphier/clk-uniphier-sys.c +71 −27
  3452. drivers/clk/uniphier/clk-uniphier.h +2 −2
  3453. drivers/clk/ux500/clk-prcc.c +3 −3
  3454. drivers/clk/ux500/clk-prcmu.c +7 −7
  3455. drivers/clk/ux500/clk-sysctrl.c +4 −4
  3456. drivers/clk/versatile/clk-vexpress-osc.c +1 −1
  3457. drivers/clk/zte/clk-zx296718.c +3 −3
  3458. drivers/clocksource/Kconfig +9 −1
  3459. drivers/clocksource/Makefile +1 −0
  3460. drivers/clocksource/arm_arch_timer.c +6 −2
  3461. drivers/clocksource/bcm2835_timer.c +0 −1
  3462. drivers/clocksource/em_sti.c +6 −5
  3463. drivers/clocksource/mips-gic-timer.c +31 −6
  3464. drivers/clocksource/tango_xtal.c +3 −3
  3465. drivers/clocksource/timer-imx-tpm.c +239 −0
  3466. drivers/clocksource/timer-integrator-ap.c +2 −2
  3467. drivers/clocksource/timer-of.c +7 −8
  3468. drivers/clocksource/timer-probe.c +1 −2
  3469. drivers/clocksource/timer-stm32.c +4 −4
  3470. drivers/cpufreq/Kconfig.arm +8 −13
  3471. drivers/cpufreq/Makefile +2 −2
  3472. drivers/cpufreq/arm_big_little.c +4 −6
  3473. drivers/cpufreq/cppc_cpufreq.c +0 −1
  3474. drivers/cpufreq/cpufreq-dt-platdev.c +60 −17
  3475. drivers/cpufreq/cpufreq-dt.c +1 −0
  3476. drivers/cpufreq/cpufreq-nforce2.c +1 −1
  3477. drivers/cpufreq/cpufreq.c +34 −7
  3478. drivers/cpufreq/cpufreq_conservative.c +0 −6
  3479. drivers/cpufreq/cpufreq_governor.c +5 −15
  3480. drivers/cpufreq/cpufreq_governor.h +1 −2
  3481. drivers/cpufreq/cpufreq_ondemand.c +0 −12
  3482. drivers/cpufreq/dbx500-cpufreq.c +0 −103
  3483. drivers/cpufreq/elanfreq.c +1 −3
  3484. drivers/cpufreq/gx-suspmod.c +1 −1
  3485. drivers/cpufreq/imx6q-cpufreq.c +9 −0
  3486. drivers/cpufreq/intel_pstate.c +50 −339
  3487. drivers/cpufreq/longrun.c +0 −1
  3488. drivers/cpufreq/loongson2_cpufreq.c +1 −1
  3489. drivers/cpufreq/mediatek-cpufreq.c +16 −13
  3490. drivers/cpufreq/pmac32-cpufreq.c +5 −2
  3491. drivers/cpufreq/pmac64-cpufreq.c +1 −1
  3492. drivers/cpufreq/powernow-k7.c +1 −1
  3493. drivers/cpufreq/s5pv210-cpufreq.c +3 −0
  3494. drivers/cpufreq/sa1100-cpufreq.c +3 −2
  3495. drivers/cpufreq/sa1110-cpufreq.c +3 −2
  3496. drivers/cpufreq/sh-cpufreq.c +1 −2
  3497. drivers/cpufreq/speedstep-ich.c +1 −1
  3498. drivers/cpufreq/speedstep-lib.c +2 −2
  3499. drivers/cpufreq/speedstep-smi.c +1 −1
  3500. drivers/cpufreq/sti-cpufreq.c +4 −4
  3501. drivers/cpufreq/tango-cpufreq.c +38 −0
  3502. drivers/cpufreq/ti-cpufreq.c +3 −3
  3503. drivers/cpufreq/unicore2-cpufreq.c +1 −2
  3504. drivers/cpuidle/Makefile +1 −0
  3505. drivers/cpuidle/coupled.c +5 −5
  3506. drivers/cpuidle/cpuidle-arm.c +4 −2
  3507. drivers/cpuidle/cpuidle-cps.c +1 −1
  3508. drivers/cpuidle/cpuidle.c +9 −9
  3509. drivers/cpuidle/driver.c +0 −32
  3510. drivers/cpuidle/dt_idle_states.c +12 −12
  3511. drivers/cpuidle/governors/ladder.c +8 −6
  3512. drivers/cpuidle/governors/menu.c +5 −8
  3513. drivers/cpuidle/poll_state.c +37 −0
  3514. drivers/crypto/Kconfig +46 −3
  3515. drivers/crypto/Makefile +3 −1
  3516. drivers/crypto/atmel-ecc.c +781 −0
  3517. drivers/crypto/atmel-ecc.h +128 −0
  3518. drivers/crypto/atmel-sha.c +1 −1
  3519. drivers/crypto/atmel-tdes.c +1 −1
  3520. drivers/crypto/axis/Makefile +1 −0
  3521. drivers/crypto/axis/artpec6_crypto.c +3192 −0
  3522. drivers/crypto/bcm/cipher.c +54 −60
  3523. drivers/crypto/bcm/cipher.h +7 −6
  3524. drivers/crypto/caam/Kconfig +1 −4
  3525. drivers/crypto/caam/caamalg.c +15 −51
  3526. drivers/crypto/caam/caamalg_desc.c +2 −3
  3527. drivers/crypto/caam/caamalg_qi.c +47 −8
  3528. drivers/crypto/caam/caamhash.c +3 −4
  3529. drivers/crypto/caam/caamrng.c +1 −5
  3530. drivers/crypto/caam/ctrl.c +69 −77
  3531. drivers/crypto/caam/ctrl.h +2 −0
  3532. drivers/crypto/caam/error.c +40 −0
  3533. drivers/crypto/caam/error.h +4 −0
  3534. drivers/crypto/caam/intern.h +0 −11
  3535. drivers/crypto/caam/jr.c +6 −1
  3536. drivers/crypto/caam/qi.c +12 −18
  3537. drivers/crypto/caam/qi.h +3 −0
  3538. drivers/crypto/caam/regs.h +29 −31
  3539. drivers/crypto/caam/sg_sw_qm2.h +81 −0
  3540. drivers/crypto/caam/sg_sw_sec4.h +25 −18
  3541. drivers/crypto/cavium/cpt/cptpf_main.c +9 −4
  3542. drivers/crypto/cavium/nitrox/nitrox_main.c +3 −1
  3543. drivers/crypto/ccp/Kconfig +15 −7
  3544. drivers/crypto/ccp/Makefile +4 −3
  3545. drivers/crypto/ccp/ccp-crypto-aes-galois.c +1 −1
  3546. drivers/crypto/ccp/ccp-crypto-aes-xts.c +53 −43
  3547. drivers/crypto/ccp/ccp-crypto-des3.c +1 −1
  3548. drivers/crypto/ccp/ccp-crypto-main.c +20 −1
  3549. drivers/crypto/ccp/ccp-crypto-rsa.c +299 −0
  3550. drivers/crypto/ccp/ccp-crypto-sha.c +1 −1
  3551. drivers/crypto/ccp/ccp-crypto.h +34 −2
  3552. drivers/crypto/ccp/ccp-debugfs.c +10 −5
  3553. drivers/crypto/ccp/ccp-dev-v3.c +13 −7
  3554. drivers/crypto/ccp/ccp-dev-v5.c +14 −14
  3555. drivers/crypto/ccp/ccp-dev.c +84 −50
  3556. drivers/crypto/ccp/ccp-dev.h +9 −21
  3557. drivers/crypto/ccp/ccp-dmaengine.c +1 −24
  3558. drivers/crypto/ccp/ccp-ops.c +91 −42
  3559. drivers/crypto/ccp/ccp-pci.c +0 −356
  3560. drivers/crypto/ccp/ccp-platform.c +0 −293
  3561. drivers/crypto/ccp/sp-dev.c +277 −0
  3562. drivers/crypto/ccp/sp-dev.h +133 −0
  3563. drivers/crypto/ccp/sp-pci.c +276 −0
  3564. drivers/crypto/ccp/sp-platform.c +256 −0
  3565. drivers/crypto/geode-aes.c +10 −7
  3566. drivers/crypto/img-hash.c +1 −1
  3567. drivers/crypto/inside-secure/safexcel.c +3 −2
  3568. drivers/crypto/inside-secure/safexcel_cipher.c +1 −1
  3569. drivers/crypto/inside-secure/safexcel_hash.c +1 −1
  3570. drivers/crypto/ixp4xx_crypto.c +3 −3
  3571. drivers/crypto/mediatek/mtk-platform.c +1 −1
  3572. drivers/crypto/mxc-scc.c +2 −2
  3573. drivers/crypto/mxs-dcp.c +6 −2
  3574. drivers/crypto/n2_core.c +28 −32
  3575. drivers/crypto/nx/Kconfig +1 −0
  3576. drivers/crypto/nx/nx-842-powernv.c +464 −50
  3577. drivers/crypto/nx/nx-842.c +1 −1
  3578. drivers/crypto/nx/nx-842.h +8 −5
  3579. drivers/crypto/omap-aes.c +1 −0
  3580. drivers/crypto/omap-des.c +2 −1
  3581. drivers/crypto/omap-sham.c +1 −1
  3582. drivers/crypto/qat/qat_common/adf_aer.c +1 −1
  3583. drivers/crypto/rockchip/rk3288_crypto.c +56 −18
  3584. drivers/crypto/rockchip/rk3288_crypto.h +10 −5
  3585. drivers/crypto/rockchip/rk3288_crypto_ablkcipher.c +50 −53
  3586. drivers/crypto/rockchip/rk3288_crypto_ahash.c +60 −59
  3587. drivers/crypto/sahara.c +6 −8
  3588. drivers/crypto/stm32/Kconfig +16 −3
  3589. drivers/crypto/stm32/Makefile +2 −2
  3590. drivers/crypto/stm32/stm32-hash.c +1575 −0
  3591. drivers/crypto/stm32/stm32_crc32.c +9 −8
  3592. drivers/crypto/sunxi-ss/Makefile +1 −0
  3593. drivers/crypto/sunxi-ss/sun4i-ss-core.c +30 −0
  3594. drivers/crypto/sunxi-ss/sun4i-ss-prng.c +56 −0
  3595. drivers/crypto/sunxi-ss/sun4i-ss.h +11 −0
  3596. drivers/crypto/talitos.c +5 −4
  3597. drivers/crypto/virtio/virtio_crypto_algs.c +87 −22
  3598. drivers/crypto/virtio/virtio_crypto_common.h +4 −18
  3599. drivers/crypto/virtio/virtio_crypto_core.c +7 −30
  3600. drivers/crypto/vmx/aes_ctr.c +1 −2
  3601. drivers/dax/super.c +26 −7
  3602. drivers/devfreq/Kconfig +1 −0
  3603. drivers/devfreq/devfreq-event.c +2 −2
  3604. drivers/devfreq/devfreq.c +4 −1
  3605. drivers/devfreq/governor.h +4 −0
  3606. drivers/dma-buf/sw_sync.c +9 −1
  3607. drivers/dma/Kconfig +6 −0
  3608. drivers/dma/Makefile +1 −0
  3609. drivers/dma/altera-msgdma.c +927 −0
  3610. drivers/dma/amba-pl08x.c +1 −1
  3611. drivers/dma/at_hdmac.c +1 −139
  3612. drivers/dma/at_xdmac.c +8 −5
  3613. drivers/dma/bcm-sba-raid.c +295 −249
  3614. drivers/dma/dmaengine.c +79 −24
  3615. drivers/dma/dmatest.c +59 −51
  3616. drivers/dma/fsldma.c +0 −118
  3617. drivers/dma/ioat/dma.c +7 −3
  3618. drivers/dma/ioat/dma.h +3 −0
  3619. drivers/dma/ioat/init.c +1 −1
  3620. drivers/dma/ioat/sysfs.c +42 −0
  3621. drivers/dma/k3dma.c +4 −8
  3622. drivers/dma/mv_xor.c +1 −161
  3623. drivers/dma/nbpfaxi.c +0 −17
  3624. drivers/dma/of-dma.c +4 −4
  3625. drivers/dma/pl330.c +1 −1
  3626. drivers/dma/ppc4xx/adma.c +16 −21
  3627. drivers/dma/qcom/bam_dma.c +5 −1
  3628. drivers/dma/qcom/hidma.c +36 −1
  3629. drivers/dma/qcom/hidma.h +6 −1
  3630. drivers/dma/qcom/hidma_ll.c +4 −7
  3631. drivers/dma/qcom/hidma_mgmt.c +10 −6
  3632. drivers/dma/sh/rcar-dmac.c +43 −42
  3633. drivers/dma/ste_dma40.c +2 −20
  3634. drivers/dma/sun6i-dma.c +26 −7
  3635. drivers/dma/tegra210-adma.c +2 −2
  3636. drivers/dma/ti-dma-crossbar.c +1 −1
  3637. drivers/dma/xgene-dma.c +1 −159
  3638. drivers/dma/xilinx/xilinx_dma.c +15 −15
  3639. drivers/dma/xilinx/zynqmp_dma.c +0 −94
  3640. drivers/edac/altera_edac.c +3 −3
  3641. drivers/edac/amd64_edac.c +0 −1
  3642. drivers/edac/amd76x_edac.c +0 −2
  3643. drivers/edac/cpc925_edac.c +1 −2
  3644. drivers/edac/e752x_edac.c +0 −2
  3645. drivers/edac/e7xxx_edac.c +0 −2
  3646. drivers/edac/edac_mc_sysfs.c +7 −7
  3647. drivers/edac/ghes_edac.c +0 −3
  3648. drivers/edac/highbank_mc_edac.c +0 −1
  3649. drivers/edac/i3000_edac.c +0 −3
  3650. drivers/edac/i3200_edac.c +0 −3
  3651. drivers/edac/i5000_edac.c +0 −1
  3652. drivers/edac/i5100_edac.c +0 −1
  3653. drivers/edac/i5400_edac.c +0 −1
  3654. drivers/edac/i7300_edac.c +0 −1
  3655. drivers/edac/i7core_edac.c +4 −5
  3656. drivers/edac/i82443bxgx_edac.c +0 −3
  3657. drivers/edac/i82860_edac.c +0 −2
  3658. drivers/edac/i82875p_edac.c +0 −2
  3659. drivers/edac/i82975x_edac.c +0 −2
  3660. drivers/edac/ie31200_edac.c +0 −2
  3661. drivers/edac/mce_amd.c +16 −20
  3662. drivers/edac/mv64x60_edac.c +0 −1
  3663. drivers/edac/pnd2_edac.c +77 −29
  3664. drivers/edac/ppc4xx_edac.c +4 −5
  3665. drivers/edac/r82600_edac.c +0 −2
  3666. drivers/edac/sb_edac.c +47 −17
  3667. drivers/edac/skx_edac.c +0 −3
  3668. drivers/edac/synopsys_edac.c +0 −1
  3669. drivers/edac/thunderx_edac.c +2 −4
  3670. drivers/edac/x38_edac.c +0 −3
  3671. drivers/edac/xgene_edac.c +0 −1
  3672. drivers/extcon/Kconfig +7 −0
  3673. drivers/extcon/Makefile +1 −0
  3674. drivers/extcon/devres.c +24 −26
  3675. drivers/extcon/extcon-intel-int3496.c +1 −1
  3676. drivers/extcon/extcon-max77693.c +2 −3
  3677. drivers/extcon/extcon-usbc-cros-ec.c +417 −0
  3678. drivers/extcon/extcon.c +136 −143
  3679. drivers/firmware/arm_scpi.c +2 −2
  3680. drivers/firmware/dcdbas.c +1 −1
  3681. drivers/firmware/dmi-sysfs.c +3 −2
  3682. drivers/firmware/efi/Kconfig +10 −0
  3683. drivers/firmware/efi/apple-properties.c +2 −3
  3684. drivers/firmware/efi/arm-init.c +8 −0
  3685. drivers/firmware/efi/cper.c +7 −15
  3686. drivers/firmware/efi/efi-bgrt.c +1 −21
  3687. drivers/firmware/efi/efi.c +67 −8
  3688. drivers/firmware/efi/esrt.c +1 −1
  3689. drivers/firmware/efi/libstub/Makefile +2 −1
  3690. drivers/firmware/efi/libstub/arm-stub.c +3 −0
  3691. drivers/firmware/efi/libstub/arm64-stub.c +13 −3
  3692. drivers/firmware/efi/libstub/efi-stub-helper.c +2 −2
  3693. drivers/firmware/efi/libstub/random.c +4 −6
  3694. drivers/firmware/efi/libstub/tpm.c +58 −0
  3695. drivers/firmware/efi/reboot.c +11 −1
  3696. drivers/firmware/google/gsmi.c +1 −1
  3697. drivers/firmware/google/memconsole-x86-legacy.c +1 −1
  3698. drivers/firmware/google/vpd.c +5 −5
  3699. drivers/firmware/pcdp.c +2 −2
  3700. drivers/firmware/psci.c +2 −2
  3701. drivers/firmware/tegra/bpmp.c +2 −2
  3702. drivers/fmc/Makefile +1 −0
  3703. drivers/fmc/fmc-chardev.c +1 −2
  3704. drivers/fmc/fmc-core.c +90 −5
  3705. drivers/fmc/fmc-debug.c +173 −0
  3706. drivers/fmc/fmc-dump.c +0 −41
  3707. drivers/fmc/fmc-match.c +1 −1
  3708. drivers/fmc/fmc-private.h +9 −0
  3709. drivers/fmc/fmc-sdb.c +25 −94
  3710. drivers/fmc/fmc-trivial.c +8 −12
  3711. drivers/fmc/fmc-write-eeprom.c +4 −4
  3712. drivers/fmc/fru-parse.c +1 −2
  3713. drivers/fpga/Kconfig +15 −5
  3714. drivers/fpga/Makefile +2 −0
  3715. drivers/fpga/altera-cvp.c +500 −0
  3716. drivers/fpga/altera-hps2fpga.c +8 −4
  3717. drivers/fpga/altera-ps-spi.c +308 −0
  3718. drivers/fpga/fpga-region.c +2 −2
  3719. drivers/fsi/fsi-core.c +2 −2
  3720. drivers/fsi/fsi-scom.c +4 −6
  3721. drivers/gpio/Kconfig +25 −1
  3722. drivers/gpio/Makefile +2 −0
  3723. drivers/gpio/devres.c +3 −0
  3724. drivers/gpio/gpio-74x164.c +10 −0
  3725. drivers/gpio/gpio-altera-a10sr.c +1 −1
  3726. drivers/gpio/gpio-altera.c +2 −2
  3727. drivers/gpio/gpio-aspeed.c +1 −1
  3728. drivers/gpio/gpio-brcmstb.c +6 −5
  3729. drivers/gpio/gpio-davinci.c +17 −5
  3730. drivers/gpio/gpio-ge.c +2 −4
  3731. drivers/gpio/gpio-grgpio.c +1 −1
  3732. drivers/gpio/gpio-it87.c +3 −0
  3733. drivers/gpio/gpio-max77620.c +1 −1
  3734. drivers/gpio/gpio-mb86s7x.c +3 −1
  3735. drivers/gpio/gpio-ml-ioh.c +7 −5
  3736. drivers/gpio/gpio-mockup.c +7 −72
  3737. drivers/gpio/gpio-mpc8xxx.c +2 −2
  3738. drivers/gpio/gpio-msic.c +2 −2
  3739. drivers/gpio/gpio-mvebu.c +1 −1
  3740. drivers/gpio/gpio-mxc.c +17 −10
  3741. drivers/gpio/gpio-mxs.c +10 −5
  3742. drivers/gpio/gpio-omap.c +2 −0
  3743. drivers/gpio/gpio-pca953x.c +3 −5
  3744. drivers/gpio/gpio-pch.c +7 −5
  3745. drivers/gpio/gpio-pl061.c +1 −1
  3746. drivers/gpio/gpio-pxa.c +5 −3
  3747. drivers/gpio/gpio-rcar.c +10 −0
  3748. drivers/gpio/gpio-sta2x11.c +10 −4
  3749. drivers/gpio/gpio-tb10x.c +2 −1
  3750. drivers/gpio/gpio-tegra.c +61 −68
  3751. drivers/gpio/gpio-thunderx.c +639 −0
  3752. drivers/gpio/gpio-tps68470.c +176 −0
  3753. drivers/gpio/gpio-twl4030.c +1 −1
  3754. drivers/gpio/gpio-twl6040.c +0 −2
  3755. drivers/gpio/gpio-tz1090.c +4 −6
  3756. drivers/gpio/gpio-vf610.c +44 −3
  3757. drivers/gpio/gpio-xilinx.c +2 −2
  3758. drivers/gpio/gpio-zevio.c +1 −1
  3759. drivers/gpio/gpio-zynq.c +136 −24
  3760. drivers/gpio/gpiolib-acpi.c +2 −2
  3761. drivers/gpio/gpiolib-of.c +17 −19
  3762. drivers/gpio/gpiolib-sysfs.c +12 −6
  3763. drivers/gpio/gpiolib.c +84 −46
  3764. drivers/gpio/gpiolib.h +1 −1
  3765. drivers/gpu/drm/Kconfig +6 −1
  3766. drivers/gpu/drm/Makefile +3 −3
  3767. drivers/gpu/drm/amd/amdgpu/Makefile +0 −2
  3768. drivers/gpu/drm/amd/amdgpu/amdgpu.h +38 −44
  3769. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c +2 −0
  3770. drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c +2 −1
  3771. drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +85 −45
  3772. drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +2 −4
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+38−5
@@ -854,7 +854,7 @@ · 853 unmodified lines
854 The filter can be disabled or changed to another854 The filter can be disabled or changed to another
855 driver later using sysfs.855 driver later using sysfs.
856 856
857 drm_kms_helper.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]857 drm.edid_firmware=[<connector>:]<file>[,[<connector>:]<file>]
858 Broken monitors, graphic adapters, KVMs and EDIDless858 Broken monitors, graphic adapters, KVMs and EDIDless
859 panels may send no or incorrect EDID data sets.859 panels may send no or incorrect EDID data sets.
860 This parameter allows to specify an EDID data sets860 This parameter allows to specify an EDID data sets
@@ -2233,6 +2233,17 @@ · 1372 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/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/faraday,tve200.txt+54−0
@@ -0,0 +1,54 @@
1* Faraday TV Encoder TVE200
2
3Required properties:
4
5- compatible: must be one of:
6 "faraday,tve200"
7 "cortina,gemini-tvc", "faraday,tve200"
8
9- reg: base address and size of the control registers block
10
11- interrupts: contains an interrupt specifier for the interrupt
12 line from the TVE200
13
14- clock-names: should contain "PCLK" for the clock line clocking the
15 silicon and "TVE" for the 27MHz clock to the video driver
16
17- clocks: contains phandle and clock specifier pairs for the entries
18 in the clock-names property. See
19 Documentation/devicetree/bindings/clock/clock-bindings.txt
20
21Optional properties:
22
23- resets: contains the reset line phandle for the block
24
25Required sub-nodes:
26
27- port: describes LCD panel signals, following the common binding
28 for video transmitter interfaces; see
29 Documentation/devicetree/bindings/media/video-interfaces.txt
30 This port should have the properties:
31 reg = <0>;
32 It should have one endpoint connected to a remote endpoint where
33 the display is connected.
34
35Example:
36
37display-controller@6a000000 {
38 #address-cells = <1>;
39 #size-cells = <0>;
40 compatible = "faraday,tve200";
41 reg = <0x6a000000 0x1000>;
42 interrupts = <13 IRQ_TYPE_EDGE_RISING>;
43 resets = <&syscon GEMINI_RESET_TVC>;
44 clocks = <&syscon GEMINI_CLK_GATE_TVC>,
45 <&syscon GEMINI_CLK_TVC>;
46 clock-names = "PCLK", "TVE";
47
48 port@0 {
49 reg = <0>;
50 display_out: endpoint {
51 remote-endpoint = <&panel_in>;
52 };
53 };
54};
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/panel/orisetech,otm8009a.txt+21−0
@@ -0,0 +1,21 @@
1Orise Tech OTM8009A 3.97" 480x800 TFT LCD panel (MIPI-DSI video mode)
2
3The Orise Tech OTM8009A is a 3.97" 480x800 TFT LCD panel connected using
4a MIPI-DSI video interface. Its backlight is managed through the DSI link.
5
6Required properties:
7 - compatible: "orisetech,otm8009a"
8 - reg: the virtual channel number of a DSI peripheral
9
10Optional properties:
11 - reset-gpios: a GPIO spec for the reset pin (active low).
12
13Example:
14&dsi {
15 ...
16 panel@0 {
17 compatible = "orisetech,otm8009a";
18 reg = <0>;
19 reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
20 };
21};
Documentation/devicetree/bindings/display/panel/samsung,s6e63j0x03.txt+24−0
@@ -0,0 +1,24 @@
1Samsung S6E63J0X03 1.63" 320x320 AMOLED panel (interface: MIPI-DSI command mode)
2
3Required properties:
4 - compatible: "samsung,s6e63j0x03"
5 - reg: the virtual channel number of a DSI peripheral
6 - vdd3-supply: I/O voltage supply
7 - vci-supply: voltage supply for analog circuits
8 - reset-gpios: a GPIO spec for the reset pin (active low)
9 - te-gpios: a GPIO spec for the tearing effect synchronization signal
10 gpio pin (active high)
11
12Example:
13&dsi {
14 ...
15
16 panel@0 {
17 compatible = "samsung,s6e63j0x03";
18 reg = <0>;
19 vdd3-supply = <&ldo16_reg>;
20 vci-supply = <&ldo20_reg>;
21 reset-gpios = <&gpe0 1 GPIO_ACTIVE_LOW>;
22 te-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
23 };
24};
Documentation/devicetree/bindings/display/panel/seiko,43wvf1g.txt+23−0
@@ -0,0 +1,23 @@
1Seiko Instruments Inc. 4.3" WVGA (800 x RGB x 480) TFT with Touch-Panel
2
3Required properties:
4- compatible: should be "sii,43wvf1g".
5- "dvdd-supply": 3v3 digital regulator.
6- "avdd-supply": 5v analog regulator.
7
8Optional properties:
9- backlight: phandle for the backlight control.
10
11Example:
12
13 panel {
14 compatible = "sii,43wvf1g";
15 backlight = <&backlight_display>;
16 dvdd-supply = <&reg_lcd_3v3>;
17 avdd-supply = <&reg_lcd_5v>;
18 port {
19 panel_in: endpoint {
20 remote-endpoint = <&display_out>;
21 };
22 };
23 };
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/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+0−1
@@ -46,7 +46,6 @@ hdmi: hdmi@ff980000 { · 45 unmodified lines
46 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;46 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
47 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;47 clocks = <&cru PCLK_HDMI_CTRL>, <&cru SCLK_HDMI_HDCP>;
48 clock-names = "iahb", "isfr";48 clock-names = "iahb", "isfr";
49 status = "disabled";
50 ports {49 ports {
51 hdmi_in: port {50 hdmi_in: port {
52 #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-lvds.txt+99−0
@@ -0,0 +1,99 @@
1Rockchip RK3288 LVDS interface
2================================
3
4Required properties:
5- compatible: matching the soc type, one of
6 - "rockchip,rk3288-lvds";
7
8- reg: physical base address of the controller and length
9 of memory mapped region.
10- clocks: must include clock specifiers corresponding to entries in the
11 clock-names property.
12- clock-names: must contain "pclk_lvds"
13
14- avdd1v0-supply: regulator phandle for 1.0V analog power
15- avdd1v8-supply: regulator phandle for 1.8V analog power
16- avdd3v3-supply: regulator phandle for 3.3V analog power
17
18- rockchip,grf: phandle to the general register files syscon
19- rockchip,output: "rgb", "lvds" or "duallvds", This describes the output interface
20
21Optional properties:
22- pinctrl-names: must contain a "lcdc" entry.
23- pinctrl-0: pin control group to be used for this controller.
24
25Required nodes:
26
27The lvds has two video ports as described by
28 Documentation/devicetree/bindings/media/video-interfaces.txt
29Their connections are modeled using the OF graph bindings specified in
30 Documentation/devicetree/bindings/graph.txt.
31
32- video port 0 for the VOP input, the remote endpoint maybe vopb or vopl
33- video port 1 for either a panel or subsequent encoder
34
35the lvds panel described by
36 Documentation/devicetree/bindings/display/panel/simple-panel.txt
37
38Panel required properties:
39- ports for remote LVDS output
40
41Panel optional properties:
42- data-mapping: should be "vesa-24","jeida-24" or "jeida-18".
43This describes decribed by:
44 Documentation/devicetree/bindings/display/panel/panel-lvds.txt
45
46Example:
47
48lvds_panel: lvds-panel {
49 compatible = "auo,b101ean01";
50 enable-gpios = <&gpio7 21 GPIO_ACTIVE_HIGH>;
51 data-mapping = "jeida-24";
52
53 ports {
54 panel_in_lvds: endpoint {
55 remote-endpoint = <&lvds_out_panel>;
56 };
57 };
58};
59
60For Rockchip RK3288:
61
62 lvds: lvds@ff96c000 {
63 compatible = "rockchip,rk3288-lvds";
64 rockchip,grf = <&grf>;
65 reg = <0xff96c000 0x4000>;
66 clocks = <&cru PCLK_LVDS_PHY>;
67 clock-names = "pclk_lvds";
68 pinctrl-names = "lcdc";
69 pinctrl-0 = <&lcdc_ctl>;
70 avdd1v0-supply = <&vdd10_lcd>;
71 avdd1v8-supply = <&vcc18_lcd>;
72 avdd3v3-supply = <&vcca_33>;
73 rockchip,output = "rgb";
74 ports {
75 #address-cells = <1>;
76 #size-cells = <0>;
77
78 lvds_in: port@0 {
79 reg = <0>;
80
81 lvds_in_vopb: endpoint@0 {
82 reg = <0>;
83 remote-endpoint = <&vopb_out_lvds>;
84 };
85 lvds_in_vopl: endpoint@1 {
86 reg = <1>;
87 remote-endpoint = <&vopl_out_lvds>;
88 };
89 };
90
91 lvds_out: port@1 {
92 reg = <1>;
93
94 lvds_out_panel: endpoint {
95 remote-endpoint = <&panel_in_lvds>;
96 };
97 };
98 };
99 };
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/sunxi/sun4i-drm.txt+0−1
@@ -278,7 +278,6 @@ hdmi: hdmi@01c16000 { · 277 unmodified lines
278 <&dma SUN4I_DMA_NORMAL 16>,278 <&dma SUN4I_DMA_NORMAL 16>,
279 <&dma SUN4I_DMA_DEDICATED 24>;279 <&dma SUN4I_DMA_DEDICATED 24>;
280 dma-names = "ddc-tx", "ddc-rx", "audio-tx";280 dma-names = "ddc-tx", "ddc-rx", "audio-tx";
281 status = "disabled";
282 281
283 ports {282 ports {
284 #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/ams,as3645a.txt+71−0
@@ -0,0 +1,71 @@
1Analog devices AS3645A device tree bindings
2
3The AS3645A flash LED controller can drive two LEDs, one high current
4flash LED and one indicator LED. The high current flash LED can be
5used in torch mode as well.
6
7Ranges below noted as [a, b] are closed ranges between a and b, i.e. a
8and b are included in the range.
9
10Please also see common.txt in the same directory.
11
12
13Required properties
14===================
15
16compatible : Must be "ams,as3645a".
17reg : The I2C address of the device. Typically 0x30.
18
19
20Required properties of the "flash" child node
21=============================================
22
23flash-timeout-us: Flash timeout in microseconds. The value must be in
24 the range [100000, 850000] and divisible by 50000.
25flash-max-microamp: Maximum flash current in microamperes. Has to be
26 in the range between [200000, 500000] and
27 divisible by 20000.
28led-max-microamp: Maximum torch (assist) current in microamperes. The
29 value must be in the range between [20000, 160000] and
30 divisible by 20000.
31ams,input-max-microamp: Maximum flash controller input current. The
32 value must be in the range [1250000, 2000000]
33 and divisible by 50000.
34
35
36Optional properties of the "flash" child node
37=============================================
38
39label : The label of the flash LED.
40
41
42Required properties of the "indicator" child node
43=================================================
44
45led-max-microamp: Maximum indicator current. The allowed values are
46 2500, 5000, 7500 and 10000.
47
48Optional properties of the "indicator" child node
49=================================================
50
51label : The label of the indicator LED.
52
53
54Example
55=======
56
57 as3645a@30 {
58 reg = <0x30>;
59 compatible = "ams,as3645a";
60 flash {
61 flash-timeout-us = <150000>;
62 flash-max-microamp = <320000>;
63 led-max-microamp = <60000>;
64 ams,input-max-microamp = <1750000>;
65 label = "as3645a:flash";
66 };
67 indicator {
68 led-max-microamp = <10000>;
69 label = "as3645a:indicator";
70 };
71 };
Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.txt+14−0
@@ -0,0 +1,14 @@
1Device tree bindings for IR LED connected through gpio pin which is used as
2remote controller transmitter.
3
4Required properties:
5 - compatible: should be "gpio-ir-tx".
6 - gpios : Should specify the IR LED GPIO, see "gpios property" in
7 Documentation/devicetree/bindings/gpio/gpio.txt. Active low LEDs
8 should be indicated using flags in the GPIO specifier.
9
10Example:
11 irled@0 {
12 compatible = "gpio-ir-tx";
13 gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
14 };
Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.txt+13−0
@@ -0,0 +1,13 @@
1Device tree bindings for IR LED connected through pwm pin which is used as
2remote controller transmitter.
3
4Required properties:
5 - compatible: should be "pwm-ir-tx".
6 - pwms : PWM property to point to the PWM device (phandle)/port (id)
7 and to specify the period time to be used: <&phandle id period_ns>;
8
9Example:
10 irled {
11 compatible = "pwm-ir-tx";
12 pwms = <&pwm0 0 10000000>;
13 };
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/i2c/adv748x.txt+95−0
@@ -0,0 +1,95 @@
1* Analog Devices ADV748X video decoder with HDMI receiver
2
3The ADV7481 and ADV7482 are multi format video decoders with an integrated
4HDMI receiver. They can output CSI-2 on two independent outputs TXA and TXB
5from three input sources HDMI, analog and TTL.
6
7Required Properties:
8
9 - compatible: Must contain one of the following
10 - "adi,adv7481" for the ADV7481
11 - "adi,adv7482" for the ADV7482
12
13 - reg: I2C slave address
14
15Optional Properties:
16
17 - interrupt-names: Should specify the interrupts as "intrq1", "intrq2" and/or
18 "intrq3". All interrupts are optional. The "intrq3" interrupt
19 is only available on the adv7481
20 - interrupts: Specify the interrupt lines for the ADV748x
21
22The device node must contain one 'port' child node per device input and output
23port, in accordance with the video interface bindings defined in
24Documentation/devicetree/bindings/media/video-interfaces.txt. The port nodes
25are numbered as follows.
26
27 Name Type Port
28 ---------------------------------------
29 AIN0 sink 0
30 AIN1 sink 1
31 AIN2 sink 2
32 AIN3 sink 3
33 AIN4 sink 4
34 AIN5 sink 5
35 AIN6 sink 6
36 AIN7 sink 7
37 HDMI sink 8
38 TTL sink 9
39 TXA source 10
40 TXB source 11
41
42The digital output port nodes must contain at least one endpoint.
43
44Ports are optional if they are not connected to anything at the hardware level.
45
46Example:
47
48 video-receiver@70 {
49 compatible = "adi,adv7482";
50 reg = <0x70>;
51
52 #address-cells = <1>;
53 #size-cells = <0>;
54
55 interrupt-parent = <&gpio6>;
56 interrupt-names = "intrq1", "intrq2";
57 interrupts = <30 IRQ_TYPE_LEVEL_LOW>,
58 <31 IRQ_TYPE_LEVEL_LOW>;
59
60 port@7 {
61 reg = <7>;
62
63 adv7482_ain7: endpoint {
64 remote-endpoint = <&cvbs_in>;
65 };
66 };
67
68 port@8 {
69 reg = <8>;
70
71 adv7482_hdmi: endpoint {
72 remote-endpoint = <&hdmi_in>;
73 };
74 };
75
76 port@10 {
77 reg = <10>;
78
79 adv7482_txa: endpoint {
80 clock-lanes = <0>;
81 data-lanes = <1 2 3 4>;
82 remote-endpoint = <&csi40_in>;
83 };
84 };
85
86 port@11 {
87 reg = <11>;
88
89 adv7482_txb: endpoint {
90 clock-lanes = <0>;
91 data-lanes = <1>;
92 remote-endpoint = <&csi20_in>;
93 };
94 };
95 };
Documentation/devicetree/bindings/media/i2c/dongwoon,dw9714.txt+9−0
@@ -0,0 +1,9 @@
1Dongwoon Anatech DW9714 camera voice coil lens driver
2
3DW9174 is a 10-bit DAC with current sink capability. It is intended
4for driving voice coil lenses in camera modules.
5
6Mandatory properties:
7
8- compatible: "dongwoon,dw9714"
9- reg: I²C slave address
Documentation/devicetree/bindings/media/meson-ao-cec.txt+28−0
@@ -0,0 +1,28 @@
1* Amlogic Meson AO-CEC driver
2
3The Amlogic Meson AO-CEC module is present is Amlogic SoCs and its purpose is
4to handle communication between HDMI connected devices over the CEC bus.
5
6Required properties:
7 - compatible : value should be following
8 "amlogic,meson-gx-ao-cec"
9
10 - reg : Physical base address of the IP registers and length of memory
11 mapped region.
12
13 - interrupts : AO-CEC interrupt number to the CPU.
14 - clocks : from common clock binding: handle to AO-CEC clock.
15 - clock-names : from common clock binding: must contain "core",
16 corresponding to entry in the clocks property.
17 - hdmi-phandle: phandle to the HDMI controller
18
19Example:
20
21cec_AO: cec@100 {
22 compatible = "amlogic,meson-gx-ao-cec";
23 reg = <0x0 0x00100 0x0 0x14>;
24 interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
25 clocks = <&clkc_AO CLKID_AO_CEC_32K>;
26 clock-names = "core";
27 hdmi-phandle = <&hdmi_tx>;
28};
Documentation/devicetree/bindings/media/mtk-cir.txt+6−2
@@ -2,10 +2,14 @@ Device-Tree bindings for Mediatek consumer IR controller · 1 unmodified line
2found in Mediatek SoC family2found in Mediatek SoC family
3 3
4Required properties:4Required properties:
5- compatible : "mediatek,mt7623-cir"5- compatible : Should be
6 "mediatek,mt7623-cir": for MT7623 SoC
7 "mediatek,mt7622-cir": for MT7622 SoC
6- clocks : list of clock specifiers, corresponding to8- clocks : list of clock specifiers, corresponding to
7 entries in clock-names property;9 entries in clock-names property;
8- clock-names : should contain "clk" entries;10- clock-names : should contain
11 - "clk" entries: for MT7623 SoC
12 - "clk", "bus" entries: for MT7622 SoC
9- interrupts : should contain IR IRQ number;13- interrupts : should contain IR IRQ number;
10- reg : should contain IO map address for IR.14- reg : should contain IO map address for IR.
11 15
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/qcom,camss.txt+197−0
@@ -0,0 +1,197 @@
1Qualcomm Camera Subsystem
2
3* Properties
4
5- compatible:
6 Usage: required
7 Value type: <stringlist>
8 Definition: Should contain:
9 - "qcom,msm8916-camss"
10- reg:
11 Usage: required
12 Value type: <prop-encoded-array>
13 Definition: Register ranges as listed in the reg-names property.
14- reg-names:
15 Usage: required
16 Value type: <stringlist>
17 Definition: Should contain the following entries:
18 - "csiphy0"
19 - "csiphy0_clk_mux"
20 - "csiphy1"
21 - "csiphy1_clk_mux"
22 - "csid0"
23 - "csid1"
24 - "ispif"
25 - "csi_clk_mux"
26 - "vfe0"
27- interrupts:
28 Usage: required
29 Value type: <prop-encoded-array>
30 Definition: Interrupts as listed in the interrupt-names property.
31- interrupt-names:
32 Usage: required
33 Value type: <stringlist>
34 Definition: Should contain the following entries:
35 - "csiphy0"
36 - "csiphy1"
37 - "csid0"
38 - "csid1"
39 - "ispif"
40 - "vfe0"
41- power-domains:
42 Usage: required
43 Value type: <prop-encoded-array>
44 Definition: A phandle and power domain specifier pairs to the
45 power domain which is responsible for collapsing
46 and restoring power to the peripheral.
47- clocks:
48 Usage: required
49 Value type: <prop-encoded-array>
50 Definition: A list of phandle and clock specifier pairs as listed
51 in clock-names property.
52- clock-names:
53 Usage: required
54 Value type: <stringlist>
55 Definition: Should contain the following entries:
56 - "camss_top_ahb"
57 - "ispif_ahb"
58 - "csiphy0_timer"
59 - "csiphy1_timer"
60 - "csi0_ahb"
61 - "csi0"
62 - "csi0_phy"
63 - "csi0_pix"
64 - "csi0_rdi"
65 - "csi1_ahb"
66 - "csi1"
67 - "csi1_phy"
68 - "csi1_pix"
69 - "csi1_rdi"
70 - "camss_ahb"
71 - "camss_vfe_vfe"
72 - "camss_csi_vfe"
73 - "iface"
74 - "bus"
75- vdda-supply:
76 Usage: required
77 Value type: <phandle>
78 Definition: A phandle to voltage supply for CSI2.
79- iommus:
80 Usage: required
81 Value type: <prop-encoded-array>
82 Definition: A list of phandle and IOMMU specifier pairs.
83
84* Nodes
85
86- ports:
87 Usage: required
88 Definition: As described in video-interfaces.txt in same directory.
89 Properties:
90 - reg:
91 Usage: required
92 Value type: <u32>
93 Definition: Selects CSI2 PHY interface - PHY0 or PHY1.
94 Endpoint node properties:
95 - clock-lanes:
96 Usage: required
97 Value type: <u32>
98 Definition: The physical clock lane index. The value
99 must always be <1> as the physical clock
100 lane is lane 1.
101 - data-lanes:
102 Usage: required
103 Value type: <prop-encoded-array>
104 Definition: An array of physical data lanes indexes.
105 Position of an entry determines the logical
106 lane number, while the value of an entry
107 indicates physical lane index. Lane swapping
108 is supported.
109
110* An Example
111
112 camss: camss@1b00000 {
113 compatible = "qcom,msm8916-camss";
114 reg = <0x1b0ac00 0x200>,
115 <0x1b00030 0x4>,
116 <0x1b0b000 0x200>,
117 <0x1b00038 0x4>,
118 <0x1b08000 0x100>,
119 <0x1b08400 0x100>,
120 <0x1b0a000 0x500>,
121 <0x1b00020 0x10>,
122 <0x1b10000 0x1000>;
123 reg-names = "csiphy0",
124 "csiphy0_clk_mux",
125 "csiphy1",
126 "csiphy1_clk_mux",
127 "csid0",
128 "csid1",
129 "ispif",
130 "csi_clk_mux",
131 "vfe0";
132 interrupts = <GIC_SPI 78 0>,
133 <GIC_SPI 79 0>,
134 <GIC_SPI 51 0>,
135 <GIC_SPI 52 0>,
136 <GIC_SPI 55 0>,
137 <GIC_SPI 57 0>;
138 interrupt-names = "csiphy0",
139 "csiphy1",
140 "csid0",
141 "csid1",
142 "ispif",
143 "vfe0";
144 power-domains = <&gcc VFE_GDSC>;
145 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
146 <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
147 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
148 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
149 <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
150 <&gcc GCC_CAMSS_CSI0_CLK>,
151 <&gcc GCC_CAMSS_CSI0PHY_CLK>,
152 <&gcc GCC_CAMSS_CSI0PIX_CLK>,
153 <&gcc GCC_CAMSS_CSI0RDI_CLK>,
154 <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
155 <&gcc GCC_CAMSS_CSI1_CLK>,
156 <&gcc GCC_CAMSS_CSI1PHY_CLK>,
157 <&gcc GCC_CAMSS_CSI1PIX_CLK>,
158 <&gcc GCC_CAMSS_CSI1RDI_CLK>,
159 <&gcc GCC_CAMSS_AHB_CLK>,
160 <&gcc GCC_CAMSS_VFE0_CLK>,
161 <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
162 <&gcc GCC_CAMSS_VFE_AHB_CLK>,
163 <&gcc GCC_CAMSS_VFE_AXI_CLK>;
164 clock-names = "camss_top_ahb",
165 "ispif_ahb",
166 "csiphy0_timer",
167 "csiphy1_timer",
168 "csi0_ahb",
169 "csi0",
170 "csi0_phy",
171 "csi0_pix",
172 "csi0_rdi",
173 "csi1_ahb",
174 "csi1",
175 "csi1_phy",
176 "csi1_pix",
177 "csi1_rdi",
178 "camss_ahb",
179 "camss_vfe_vfe",
180 "camss_csi_vfe",
181 "iface",
182 "bus";
183 vdda-supply = <&pm8916_l2>;
184 iommus = <&apps_iommu 3>;
185 ports {
186 #address-cells = <1>;
187 #size-cells = <0>;
188 port@0 {
189 reg = <0>;
190 csiphy0_ep: endpoint {
191 clock-lanes = <1>;
192 data-lanes = <0 2>;
193 remote-endpoint = <&ov5645_ep>;
194 };
195 };
196 };
197 };
Documentation/devicetree/bindings/media/renesas,drif.txt+1−0
@@ -40,6 +40,7 @@ To summarize, · 39 unmodified lines
40Required properties of an internal channel:40Required properties of an internal channel:
41-------------------------------------------41-------------------------------------------
42- compatible: "renesas,r8a7795-drif" if DRIF controller is a part of R8A7795 SoC.42- compatible: "renesas,r8a7795-drif" if DRIF controller is a part of R8A7795 SoC.
43 "renesas,r8a7796-drif" if DRIF controller is a part of R8A7796 SoC.
43 "renesas,rcar-gen3-drif" for a generic R-Car Gen3 compatible device.44 "renesas,rcar-gen3-drif" for a generic R-Car Gen3 compatible device.
44 45
45 When compatible with the generic version, nodes must list the46 When compatible with the generic version, nodes must list the
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/media/video-interfaces.txt+7−1
@@ -76,6 +76,11 @@ Optional endpoint properties · 75 unmodified lines
76 mode horizontal and vertical synchronization signals are provided to the76 mode horizontal and vertical synchronization signals are provided to the
77 slave device (data source) by the master device (data sink). In the master77 slave device (data source) by the master device (data sink). In the master
78 mode the data source device is also the source of the synchronization signals.78 mode the data source device is also the source of the synchronization signals.
79- bus-type: data bus type. Possible values are:
80 0 - autodetect based on other properties (MIPI CSI-2 D-PHY, parallel or Bt656)
81 1 - MIPI CSI-2 C-PHY
82 2 - MIPI CSI1
83 3 - CCP2
79- bus-width: number of data lines actively used, valid for the parallel busses.84- bus-width: number of data lines actively used, valid for the parallel busses.
80- data-shift: on the parallel data busses, if bus-width is used to specify the85- data-shift: on the parallel data busses, if bus-width is used to specify the
81 number of data lines, data-shift can be used to specify which data lines are86 number of data lines, data-shift can be used to specify which data lines are
@@ -112,7 +117,8 @@ Optional endpoint properties · 30 unmodified lines
112 should be the combined length of data-lanes and clock-lanes properties.117 should be the combined length of data-lanes and clock-lanes properties.
113 If the lane-polarities property is omitted, the value must be interpreted118 If the lane-polarities property is omitted, the value must be interpreted
114 as 0 (normal). This property is valid for serial busses only.119 as 0 (normal). This property is valid for serial busses only.
115 120- strobe: Whether the clock signal is used as clock (0) or strobe (1). Used
121 with CCP2, for instance.
116 122
117Example123Example
118-------124-------
Documentation/devicetree/bindings/media/zx-irdec.txt+14−0
@@ -0,0 +1,14 @@
1IR Decoder (IRDEC) on ZTE ZX family SoCs
2
3Required properties:
4 - compatible: Should be "zte,zx296718-irdec".
5 - reg: Physical base address and length of IRDEC registers.
6 - interrupts: Interrupt number of IRDEC.
7
8Exmaples:
9
10 irdec: ir-decoder@111000 {
11 compatible = "zte,zx296718-irdec";
12 reg = <0x111000 0x1000>;
13 interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
14 };
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+11−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.
@@ -88,6 +90,7 @@ dlg Dialog Semiconductor · 35 unmodified lines
88dlink D-Link Corporation90dlink D-Link Corporation
89dmo Data Modul AG91dmo Data Modul AG
90domintech Domintech Co., Ltd.92domintech Domintech Co., Ltd.
93dongwoon Dongwoon Anatech
91dptechnics DPTechnics94dptechnics DPTechnics
92dragino Dragino Technology Co., Limited95dragino Dragino Technology Co., Limited
93ea Embedded Artists AB96ea Embedded Artists AB
@@ -175,6 +178,7 @@ kosagi Sutajio Ko-Usagi PTE Ltd. · 81 unmodified lines
175kyo Kyocera Corporation178kyo Kyocera Corporation
176lacie LaCie179lacie LaCie
177lantiq Lantiq Semiconductor180lantiq Lantiq Semiconductor
181lattice Lattice Semiconductor
178lego LEGO Systems A/S182lego LEGO Systems A/S
179lenovo Lenovo Group Ltd.183lenovo Lenovo Group Ltd.
180lg LG Corporation184lg LG Corporation
@@ -195,6 +199,7 @@ mediatek MediaTek Inc. · 14 unmodified lines
195megachips MegaChips199megachips MegaChips
196melexis Melexis N.V.200melexis Melexis N.V.
197melfas MELFAS Inc.201melfas MELFAS Inc.
202mellanox Mellanox Technologies
198memsic MEMSIC Inc.203memsic MEMSIC Inc.
199merrii Merrii Technology Co., Ltd.204merrii Merrii Technology Co., Ltd.
200micrel Micrel Inc.205micrel Micrel Inc.
@@ -206,7 +211,7 @@ miramems MiraMEMS Sensing Technology Co., Ltd. · 5 unmodified lines
206mitsubishi Mitsubishi Electric Corporation211mitsubishi Mitsubishi Electric Corporation
207mosaixtech Mosaix Technologies, Inc.212mosaixtech Mosaix Technologies, Inc.
208motorola Motorola, Inc.213motorola Motorola, Inc.
209moxa Moxa214moxa Moxa Inc.
210mpl MPL AG215mpl MPL AG
211mqmaker mqmaker Inc.216mqmaker mqmaker Inc.
212msi Micro-Star International Co. Ltd.217msi Micro-Star International Co. Ltd.
@@ -243,6 +248,7 @@ ontat On Tat Industrial Company · 30 unmodified lines
243opencores OpenCores.org248opencores OpenCores.org
244option Option NV249option Option NV
245ORCL Oracle Corporation250ORCL Oracle Corporation
251orisetech Orise Technology
246ortustech Ortus Technology Co., Ltd.252ortustech Ortus Technology Co., Ltd.
247ovti OmniVision Technologies253ovti OmniVision Technologies
248oxsemi Oxford Semiconductor, Ltd.254oxsemi Oxford Semiconductor, Ltd.
@@ -288,6 +294,7 @@ schindler Schindler · 39 unmodified lines
288seagate Seagate Technology PLC294seagate Seagate Technology PLC
289semtech Semtech Corporation295semtech Semtech Corporation
290sensirion Sensirion AG296sensirion Sensirion AG
297sff Small Form Factor Committee
291sgx SGX Sensortech298sgx SGX Sensortech
292sharp Sharp Corporation299sharp Sharp Corporation
293si-en Si-En Technology Ltd.300si-en Si-En Technology Ltd.
@@ -342,6 +349,7 @@ tpo TPO · 48 unmodified lines
342tronfy Tronfy349tronfy Tronfy
343tronsmart Tronsmart350tronsmart Tronsmart
344truly Truly Semiconductors Limited351truly Truly Semiconductors Limited
352tsd Theobroma Systems Design und Consulting GmbH
345tyan Tyan Computer Corporation353tyan Tyan Computer Corporation
346ucrobotics uCRobotics354ucrobotics uCRobotics
347udoo Udoo355udoo Udoo
@@ -354,6 +362,7 @@ variscite Variscite Ltd. · 6 unmodified lines
354via VIA Technologies, Inc.362via VIA Technologies, Inc.
355virtio Virtual I/O Device Specification, developed by the OASIS consortium363virtio Virtual I/O Device Specification, developed by the OASIS consortium
356vivante Vivante Corporation364vivante Vivante Corporation
365vocore VoCore Studio
357voipac Voipac Technologies s.r.o.366voipac Voipac Technologies s.r.o.
358wd Western Digital Corp.367wd Western Digital Corp.
359wetek WeTek Electronics, limited.368wetek 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/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/gpu/drm-uapi.rst+55−0
@@ -168,6 +168,61 @@ IOCTL Support on Device Nodes · 167 unmodified lines
168.. kernel-doc:: drivers/gpu/drm/drm_ioctl.c168.. kernel-doc:: drivers/gpu/drm/drm_ioctl.c
169 :doc: driver specific ioctls169 :doc: driver specific ioctls
170 170
171Recommended IOCTL Return Values
172-------------------------------
173
174In theory a driver's IOCTL callback is only allowed to return very few error
175codes. In practice it's good to abuse a few more. This section documents common
176practice within the DRM subsystem:
177
178ENOENT:
179 Strictly this should only be used when a file doesn't exist e.g. when
180 calling the open() syscall. We reuse that to signal any kind of object
181 lookup failure, e.g. for unknown GEM buffer object handles, unknown KMS
182 object handles and similar cases.
183
184ENOSPC:
185 Some drivers use this to differentiate "out of kernel memory" from "out
186 of VRAM". Sometimes also applies to other limited gpu resources used for
187 rendering (e.g. when you have a special limited compression buffer).
188 Sometimes resource allocation/reservation issues in command submission
189 IOCTLs are also signalled through EDEADLK.
190
191 Simply running out of kernel/system memory is signalled through ENOMEM.
192
193EPERM/EACCESS:
194 Returned for an operation that is valid, but needs more privileges.
195 E.g. root-only or much more common, DRM master-only operations return
196 this when when called by unpriviledged clients. There's no clear
197 difference between EACCESS and EPERM.
198
199ENODEV:
200 Feature (like PRIME, modesetting, GEM) is not supported by the driver.
201
202ENXIO:
203 Remote failure, either a hardware transaction (like i2c), but also used
204 when the exporting driver of a shared dma-buf or fence doesn't support a
205 feature needed.
206
207EINTR:
208 DRM drivers assume that userspace restarts all IOCTLs. Any DRM IOCTL can
209 return EINTR and in such a case should be restarted with the IOCTL
210 parameters left unchanged.
211
212EIO:
213 The GPU died and couldn't be resurrected through a reset. Modesetting
214 hardware failures are signalled through the "link status" connector
215 property.
216
217EINVAL:
218 Catch-all for anything that is an invalid argument combination which
219 cannot work.
220
221IOCTL also use other error codes like ETIME, EFAULT, EBUSY, ENOTTY but their
222usage is in line with the common meanings. The above list tries to just document
223DRM specific patterns. Note that ENOTTY has the slightly unintuitive meaning of
224"this IOCTL does not exist", and is used exactly as such in DRM.
225
171.. kernel-doc:: include/drm/drm_ioctl.h226.. kernel-doc:: include/drm/drm_ioctl.h
172 :internal:227 :internal:
173 228
Documentation/gpu/index.rst+1−0
@@ -15,6 +15,7 @@ Linux GPU Driver Developer's Guide · 14 unmodified lines
15 pl11115 pl111
16 tegra16 tegra
17 tinydrm17 tinydrm
18 tve200
18 vc419 vc4
19 vga-switcheroo20 vga-switcheroo
20 vgaarbiter21 vgaarbiter
Documentation/gpu/todo.rst+15−11
@@ -75,17 +75,6 @@ helpers. · 74 unmodified lines
75 75
76Contact: Ville Syrjälä, Daniel Vetter, driver maintainers76Contact: Ville Syrjälä, Daniel Vetter, driver maintainers
77 77
78Implement deferred fbdev setup in the helper
79--------------------------------------------
80
81Many (especially embedded drivers) want to delay fbdev setup until there's a
82real screen plugged in. This is to avoid the dreaded fallback to the low-res
83fbdev default. Many drivers have a hacked-up (and often broken) version of this,
84better to do it once in the shared helpers. Thierry has a patch series, but that
85one needs to be rebased and final polish applied.
86
87Contact: Thierry Reding, Daniel Vetter, driver maintainers
88
89Convert early atomic drivers to async commit helpers78Convert early atomic drivers to async commit helpers
90----------------------------------------------------79----------------------------------------------------
91 80
@@ -138,6 +127,8 @@ interfaces to fix these issues: · 46 unmodified lines
138 the acquire context explicitly on stack and then also pass it down into127 the acquire context explicitly on stack and then also pass it down into
139 drivers explicitly so that the legacy-on-atomic functions can use them.128 drivers explicitly so that the legacy-on-atomic functions can use them.
140 129
130 Except for some driver code this is done.
131
141* A bunch of the vtable hooks are now in the wrong place: DRM has a split132* A bunch of the vtable hooks are now in the wrong place: DRM has a split
142 between core vfunc tables (named ``drm_foo_funcs``), which are used to133 between core vfunc tables (named ``drm_foo_funcs``), which are used to
143 implement the userspace ABI. And then there's the optional hooks for the134 implement the userspace ABI. And then there's the optional hooks for the
@@ -151,6 +142,8 @@ interfaces to fix these issues: · 7 unmodified lines
151 connector at runtime. That's almost all of them, and would allow us to get142 connector at runtime. That's almost all of them, and would allow us to get
152 rid of a lot of ``best_encoder`` boilerplate in drivers.143 rid of a lot of ``best_encoder`` boilerplate in drivers.
153 144
145 This was almost done, but new drivers added a few more cases again.
146
154Contact: Daniel Vetter147Contact: Daniel Vetter
155 148
156Get rid of dev->struct_mutex from GEM drivers149Get rid of dev->struct_mutex from GEM drivers
@@ -177,6 +170,17 @@ following drivers still use ``struct_mutex``: ``msm``, ``omapdrm`` and · 20 unmodified lines
177 170
178Contact: Daniel Vetter, respective driver maintainers171Contact: Daniel Vetter, respective driver maintainers
179 172
173Convert instances of dev_info/dev_err/dev_warn to their DRM_DEV_* equivalent
174----------------------------------------------------------------------------
175
176For drivers which could have multiple instances, it is necessary to
177differentiate between which is which in the logs. Since DRM_INFO/WARN/ERROR
178don't do this, drivers used dev_info/warn/err to make this differentiation. We
179now have DRM_DEV_* variants of the drm print macros, so we can start to convert
180those drivers back to using drm-formwatted specific log messages.
181
182Contact: Sean Paul, Maintainer of the driver you plan to convert
183
180Core refactorings184Core refactorings
181=================185=================
182 186
Documentation/gpu/tve200.rst+6−0
@@ -0,0 +1,6 @@
1==================================
2 drm/tve200 Faraday TV Encoder 200
3==================================
4
5.. kernel-doc:: drivers/gpu/drm/tve200/tve200_drv.c
6 :doc: Faraday TV Encoder 200
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/media/ca.h.rst.exceptions+0−1
@@ -16,7 +16,6 @@ replace define CA_NDS :c:type:`ca_descr_info` · 15 unmodified lines
16replace define CA_DSS :c:type:`ca_descr_info`16replace define CA_DSS :c:type:`ca_descr_info`
17 17
18# some typedefs should point to struct/enums18# some typedefs should point to struct/enums
19replace typedef ca_pid_t :c:type:`ca_pid`
20replace typedef ca_slot_info_t :c:type:`ca_slot_info`19replace typedef ca_slot_info_t :c:type:`ca_slot_info`
21replace typedef ca_descr_info_t :c:type:`ca_descr_info`20replace typedef ca_descr_info_t :c:type:`ca_descr_info`
22replace typedef ca_caps_t :c:type:`ca_caps`21replace typedef ca_caps_t :c:type:`ca_caps`
Documentation/media/cec-drivers/index.rst+34−0
@@ -0,0 +1,34 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. include:: <isonum.txt>
4
5.. _cec-drivers:
6
7#################################
8CEC driver-specific documentation
9#################################
10
11**Copyright** |copy| 2017 : LinuxTV Developers
12
13This documentation is free software; you can redistribute it and/or modify it
14under the terms of the GNU General Public License as published by the Free
15Software Foundation version 2 of the License.
16
17This program is distributed in the hope that it will be useful, but WITHOUT
18ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
20more details.
21
22For more details see the file COPYING in the source distribution of Linux.
23
24.. only:: html
25
26 .. class:: toc-title
27
28 Table of Contents
29
30.. toctree::
31 :maxdepth: 5
32 :numbered:
33
34 pulse8-cec
Documentation/media/cec-drivers/pulse8-cec.rst+11−0
@@ -0,0 +1,11 @@
1Pulse-Eight CEC Adapter driver
2==============================
3
4The pulse8-cec driver implements the following module option:
5
6``persistent_config``
7---------------------
8
9By default this is off, but when set to 1 the driver will store the current
10settings to the device's internal eeprom and restore it the next time the
11device is connected to the USB port.
Documentation/media/dmx.h.rst.exceptions+5−15
@@ -40,27 +40,17 @@ replace enum dmx_input :c:type:`dmx_input` · 39 unmodified lines
40replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`40replace symbol DMX_IN_FRONTEND :c:type:`dmx_input`
41replace symbol DMX_IN_DVR :c:type:`dmx_input`41replace symbol DMX_IN_DVR :c:type:`dmx_input`
42 42
43# dmx_source_t symbols
44replace enum dmx_source :c:type:`dmx_source`
45replace symbol DMX_SOURCE_FRONT0 :c:type:`dmx_source`
46replace symbol DMX_SOURCE_FRONT1 :c:type:`dmx_source`
47replace symbol DMX_SOURCE_FRONT2 :c:type:`dmx_source`
48replace symbol DMX_SOURCE_FRONT3 :c:type:`dmx_source`
49replace symbol DMX_SOURCE_DVR0 :c:type:`dmx_source`
50replace symbol DMX_SOURCE_DVR1 :c:type:`dmx_source`
51replace symbol DMX_SOURCE_DVR2 :c:type:`dmx_source`
52replace symbol DMX_SOURCE_DVR3 :c:type:`dmx_source`
53
54
55# Flags for struct dmx_sct_filter_params43# Flags for struct dmx_sct_filter_params
56replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`44replace define DMX_CHECK_CRC :c:type:`dmx_sct_filter_params`
57replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`45replace define DMX_ONESHOT :c:type:`dmx_sct_filter_params`
58replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`46replace define DMX_IMMEDIATE_START :c:type:`dmx_sct_filter_params`
59replace define DMX_KERNEL_CLIENT :c:type:`dmx_sct_filter_params`
60 47
61# some typedefs should point to struct/enums48# some typedefs should point to struct/enums
62replace typedef dmx_caps_t :c:type:`dmx_caps`
63replace typedef dmx_filter_t :c:type:`dmx_filter`49replace typedef dmx_filter_t :c:type:`dmx_filter`
64replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`50replace typedef dmx_pes_type_t :c:type:`dmx_pes_type`
65replace typedef dmx_input_t :c:type:`dmx_input`51replace typedef dmx_input_t :c:type:`dmx_input`
66replace typedef dmx_source_t :c:type:`dmx_source`52
53ignore symbol DMX_OUT_DECODER
54ignore symbol DMX_OUT_TAP
55ignore symbol DMX_OUT_TS_TAP
56ignore symbol DMX_OUT_TSDEMUX_TAP
Documentation/media/dvb-drivers/ci.rst+0−1
@@ -143,7 +143,6 @@ All these ioctls are also valid for the High level CI interface · 142 unmodified lines
143#define CA_GET_MSG _IOR('o', 132, ca_msg_t)143#define CA_GET_MSG _IOR('o', 132, ca_msg_t)
144#define CA_SEND_MSG _IOW('o', 133, ca_msg_t)144#define CA_SEND_MSG _IOW('o', 133, ca_msg_t)
145#define CA_SET_DESCR _IOW('o', 134, ca_descr_t)145#define CA_SET_DESCR _IOW('o', 134, ca_descr_t)
146#define CA_SET_PID _IOW('o', 135, ca_pid_t)
147 146
148 147
149On querying the device, the device yields information thus:148On querying the device, the device yields information thus:
Documentation/media/dvb-drivers/index.rst+3−1
@@ -19,7 +19,9 @@ more details. · 18 unmodified lines
19 19
20For more details see the file COPYING in the source distribution of Linux.20For more details see the file COPYING in the source distribution of Linux.
21 21
22.. class:: toc-title22.. only:: html
23
24 .. class:: toc-title
23 25
24 Table of Contents26 Table of Contents
25 27
Documentation/media/frontend.h.rst.exceptions+175−10
@@ -25,19 +25,9 @@ ignore define DTV_MAX_COMMAND · 24 unmodified lines
25ignore define MAX_DTV_STATS25ignore define MAX_DTV_STATS
26ignore define DTV_IOCTL_MAX_MSGS26ignore define DTV_IOCTL_MAX_MSGS
27 27
28# Stats enum is documented altogether
29replace enum fecap_scale_params :ref:`frontend-stat-properties`
30replace symbol FE_SCALE_COUNTER frontend-stat-properties
31replace symbol FE_SCALE_DECIBEL frontend-stat-properties
32replace symbol FE_SCALE_NOT_AVAILABLE frontend-stat-properties
33replace symbol FE_SCALE_RELATIVE frontend-stat-properties
34
35# the same reference is used for both get and set ioctls28# the same reference is used for both get and set ioctls
36replace ioctl FE_SET_PROPERTY :c:type:`FE_GET_PROPERTY`29replace ioctl FE_SET_PROPERTY :c:type:`FE_GET_PROPERTY`
37 30
38# Ignore struct used only internally at Kernel
39ignore struct dtv_cmds_h
40
41# Typedefs that use the enum reference31# Typedefs that use the enum reference
42replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage`32replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage`
43 33
@@ -45,3 +35,178 @@ replace typedef fe_sec_voltage_t :c:type:`fe_sec_voltage` · 1 unmodified line
45replace define FE_TUNE_MODE_ONESHOT :c:func:`FE_SET_FRONTEND_TUNE_MODE`35replace define FE_TUNE_MODE_ONESHOT :c:func:`FE_SET_FRONTEND_TUNE_MODE`
46replace define LNA_AUTO dtv-lna36replace define LNA_AUTO dtv-lna
47replace define NO_STREAM_ID_FILTER dtv-stream-id37replace define NO_STREAM_ID_FILTER dtv-stream-id
38
39# Those enums are defined at the frontend.h header, and not externally
40
41ignore symbol FE_IS_STUPID
42ignore symbol FE_CAN_INVERSION_AUTO
43ignore symbol FE_CAN_FEC_1_2
44ignore symbol FE_CAN_FEC_2_3
45ignore symbol FE_CAN_FEC_3_4
46ignore symbol FE_CAN_FEC_4_5
47ignore symbol FE_CAN_FEC_5_6
48ignore symbol FE_CAN_FEC_6_7
49ignore symbol FE_CAN_FEC_7_8
50ignore symbol FE_CAN_FEC_8_9
51ignore symbol FE_CAN_FEC_AUTO
52ignore symbol FE_CAN_QPSK
53ignore symbol FE_CAN_QAM_16
54ignore symbol FE_CAN_QAM_32
55ignore symbol FE_CAN_QAM_64
56ignore symbol FE_CAN_QAM_128
57ignore symbol FE_CAN_QAM_256
58ignore symbol FE_CAN_QAM_AUTO
59ignore symbol FE_CAN_TRANSMISSION_MODE_AUTO
60ignore symbol FE_CAN_BANDWIDTH_AUTO
61ignore symbol FE_CAN_GUARD_INTERVAL_AUTO
62ignore symbol FE_CAN_HIERARCHY_AUTO
63ignore symbol FE_CAN_8VSB
64ignore symbol FE_CAN_16VSB
65ignore symbol FE_HAS_EXTENDED_CAPS
66ignore symbol FE_CAN_MULTISTREAM
67ignore symbol FE_CAN_TURBO_FEC
68ignore symbol FE_CAN_2G_MODULATION
69ignore symbol FE_NEEDS_BENDING
70ignore symbol FE_CAN_RECOVER
71ignore symbol FE_CAN_MUTE_TS
72
73ignore symbol QPSK
74ignore symbol QAM_16
75ignore symbol QAM_32
76ignore symbol QAM_64
77ignore symbol QAM_128
78ignore symbol QAM_256
79ignore symbol QAM_AUTO
80ignore symbol VSB_8
81ignore symbol VSB_16
82ignore symbol PSK_8
83ignore symbol APSK_16
84ignore symbol APSK_32
85ignore symbol DQPSK
86ignore symbol QAM_4_NR
87
88ignore symbol SEC_VOLTAGE_13
89ignore symbol SEC_VOLTAGE_18
90ignore symbol SEC_VOLTAGE_OFF
91
92ignore symbol SEC_TONE_ON
93ignore symbol SEC_TONE_OFF
94
95ignore symbol SEC_MINI_A
96ignore symbol SEC_MINI_B
97
98ignore symbol FE_NONE
99ignore symbol FE_HAS_SIGNAL
100ignore symbol FE_HAS_CARRIER
101ignore symbol FE_HAS_VITERBI
102ignore symbol FE_HAS_SYNC
103ignore symbol FE_HAS_LOCK
104ignore symbol FE_REINIT
105ignore symbol FE_TIMEDOUT
106
107ignore symbol FEC_NONE
108ignore symbol FEC_1_2
109ignore symbol FEC_2_3
110ignore symbol FEC_3_4
111ignore symbol FEC_4_5
112ignore symbol FEC_5_6
113ignore symbol FEC_6_7
114ignore symbol FEC_7_8
115ignore symbol FEC_8_9
116ignore symbol FEC_AUTO
117ignore symbol FEC_3_5
118ignore symbol FEC_9_10
119ignore symbol FEC_2_5
120
121ignore symbol TRANSMISSION_MODE_AUTO
122ignore symbol TRANSMISSION_MODE_1K
123ignore symbol TRANSMISSION_MODE_2K
124ignore symbol TRANSMISSION_MODE_8K
125ignore symbol TRANSMISSION_MODE_4K
126ignore symbol TRANSMISSION_MODE_16K
127ignore symbol TRANSMISSION_MODE_32K
128ignore symbol TRANSMISSION_MODE_C1
129ignore symbol TRANSMISSION_MODE_C3780
130ignore symbol TRANSMISSION_MODE_2K
131ignore symbol TRANSMISSION_MODE_8K
132
133ignore symbol GUARD_INTERVAL_AUTO
134ignore symbol GUARD_INTERVAL_1_128
135ignore symbol GUARD_INTERVAL_1_32
136ignore symbol GUARD_INTERVAL_1_16
137ignore symbol GUARD_INTERVAL_1_8
138ignore symbol GUARD_INTERVAL_1_4
139ignore symbol GUARD_INTERVAL_19_128
140ignore symbol GUARD_INTERVAL_19_256
141ignore symbol GUARD_INTERVAL_PN420
142ignore symbol GUARD_INTERVAL_PN595
143ignore symbol GUARD_INTERVAL_PN945
144
145ignore symbol HIERARCHY_NONE
146ignore symbol HIERARCHY_AUTO
147ignore symbol HIERARCHY_1
148ignore symbol HIERARCHY_2
149ignore symbol HIERARCHY_4
150
151ignore symbol INTERLEAVING_NONE
152ignore symbol INTERLEAVING_AUTO
153ignore symbol INTERLEAVING_240
154ignore symbol INTERLEAVING_720
155
156ignore symbol PILOT_ON
157ignore symbol PILOT_OFF
158ignore symbol PILOT_AUTO
159
160ignore symbol ROLLOFF_35
161ignore symbol ROLLOFF_20
162ignore symbol ROLLOFF_25
163ignore symbol ROLLOFF_AUTO
164
165ignore symbol INVERSION_ON
166ignore symbol INVERSION_OFF
167ignore symbol INVERSION_AUTO
168
169ignore symbol SYS_UNDEFINED
170ignore symbol SYS_DVBC_ANNEX_A
171ignore symbol SYS_DVBC_ANNEX_B
172ignore symbol SYS_DVBC_ANNEX_C
173ignore symbol SYS_ISDBC
174ignore symbol SYS_DVBT
175ignore symbol SYS_DVBT2
176ignore symbol SYS_ISDBT
177ignore symbol SYS_ATSC
178ignore symbol SYS_ATSCMH
179ignore symbol SYS_DTMB
180ignore symbol SYS_DVBS
181ignore symbol SYS_DVBS2
182ignore symbol SYS_TURBO
183ignore symbol SYS_ISDBS
184ignore symbol SYS_DAB
185ignore symbol SYS_DSS
186ignore symbol SYS_CMMB
187ignore symbol SYS_DVBH
188
189ignore symbol ATSCMH_SCCC_BLK_SEP
190ignore symbol ATSCMH_SCCC_BLK_COMB
191ignore symbol ATSCMH_SCCC_BLK_RES
192
193ignore symbol ATSCMH_SCCC_CODE_HLF
194ignore symbol ATSCMH_SCCC_CODE_QTR
195ignore symbol ATSCMH_SCCC_CODE_RES
196
197ignore symbol ATSCMH_RSFRAME_ENS_PRI
198ignore symbol ATSCMH_RSFRAME_ENS_SEC
199
200ignore symbol ATSCMH_RSFRAME_PRI_ONLY
201ignore symbol ATSCMH_RSFRAME_PRI_SEC
202ignore symbol ATSCMH_RSFRAME_RES
203
204ignore symbol ATSCMH_RSCODE_211_187
205ignore symbol ATSCMH_RSCODE_223_187
206ignore symbol ATSCMH_RSCODE_235_187
207ignore symbol ATSCMH_RSCODE_RES
208
209ignore symbol FE_SCALE_NOT_AVAILABLE
210ignore symbol FE_SCALE_DECIBEL
211ignore symbol FE_SCALE_RELATIVE
212ignore symbol FE_SCALE_COUNTER
Documentation/media/index.rst+6−1
@@ -1,7 +1,11 @@
1Linux Media Subsystem Documentation1Linux Media Subsystem Documentation
2===================================2===================================
3 3
4Contents:4.. only:: html
5
6 .. class:: toc-title
7
8 Table of Contents
5 9
6.. toctree::10.. toctree::
7 :maxdepth: 211 :maxdepth: 2
@@ -10,6 +14,7 @@ Contents: · 2 unmodified lines
10 media_kapi14 media_kapi
11 dvb-drivers/index15 dvb-drivers/index
12 v4l-drivers/index16 v4l-drivers/index
17 cec-drivers/index
13 18
14.. only:: subproject19.. only:: subproject
15 20
Documentation/media/kapi/cec-core.rst+40−0
@@ -107,6 +107,7 @@ your driver: · 106 unmodified lines
107 int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,107 int (*adap_transmit)(struct cec_adapter *adap, u8 attempts,
108 u32 signal_free_time, struct cec_msg *msg);108 u32 signal_free_time, struct cec_msg *msg);
109 void (*adap_status)(struct cec_adapter *adap, struct seq_file *file);109 void (*adap_status)(struct cec_adapter *adap, struct seq_file *file);
110 void (*adap_free)(struct cec_adapter *adap);
110 111
111 /* High-level callbacks */112 /* High-level callbacks */
112 ...113 ...
@@ -184,6 +185,14 @@ To log the current CEC hardware status: · 71 unmodified lines
184This optional callback can be used to show the status of the CEC hardware.185This optional callback can be used to show the status of the CEC hardware.
185The status is available through debugfs: cat /sys/kernel/debug/cec/cecX/status186The status is available through debugfs: cat /sys/kernel/debug/cec/cecX/status
186 187
188To free any resources when the adapter is deleted:
189
190.. c:function::
191 void (*adap_free)(struct cec_adapter *adap);
192
193This optional callback can be used to free any resources that might have been
194allocated by the driver. It's called from cec_delete_adapter.
195
187 196
188Your adapter driver will also have to react to events (typically interrupt197Your adapter driver will also have to react to events (typically interrupt
189driven) by calling into the framework in the following situations:198driven) by calling into the framework in the following situations:
@@ -336,3 +345,34 @@ log_addrs->num_log_addrs set to 0. The block argument is ignored when · 146 unmodified lines
336unconfiguring. This function will just return if the physical address is345unconfiguring. This function will just return if the physical address is
337invalid. Once the physical address becomes valid, then the framework will346invalid. Once the physical address becomes valid, then the framework will
338attempt to claim these logical addresses.347attempt to claim these logical addresses.
348
349CEC Pin framework
350-----------------
351
352Most CEC hardware operates on full CEC messages where the software provides
353the message and the hardware handles the low-level CEC protocol. But some
354hardware only drives the CEC pin and software has to handle the low-level
355CEC protocol. The CEC pin framework was created to handle such devices.
356
357Note that due to the close-to-realtime requirements it can never be guaranteed
358to work 100%. This framework uses highres timers internally, but if a
359timer goes off too late by more than 300 microseconds wrong results can
360occur. In reality it appears to be fairly reliable.
361
362One advantage of this low-level implementation is that it can be used as
363a cheap CEC analyser, especially if interrupts can be used to detect
364CEC pin transitions from low to high or vice versa.
365
366.. kernel-doc:: include/media/cec-pin.h
367
368CEC Notifier framework
369----------------------
370
371Most drm HDMI implementations have an integrated CEC implementation and no
372notifier support is needed. But some have independent CEC implementations
373that have their own driver. This could be an IP block for an SoC or a
374completely separate chip that deals with the CEC pin. For those cases a
375drm driver can install a notifier and use the notifier to inform the
376CEC driver about changes in the physical address.
377
378.. kernel-doc:: include/media/cec-notifier.h
Documentation/media/kapi/csi2.rst+10−0
@@ -51,6 +51,16 @@ not active. Some transmitters do this automatically but some have to · 50 unmodified lines
51be explicitly programmed to do so, and some are unable to do so51be explicitly programmed to do so, and some are unable to do so
52altogether due to hardware constraints.52altogether due to hardware constraints.
53 53
54Stopping the transmitter
55^^^^^^^^^^^^^^^^^^^^^^^^
56
57A transmitter stops sending the stream of images as a result of
58calling the ``.s_stream()`` callback. Some transmitters may stop the
59stream at a frame boundary whereas others stop immediately,
60effectively leaving the current frame unfinished. The receiver driver
61should not make assumptions either way, but function properly in both
62cases.
63
54Receiver drivers64Receiver drivers
55----------------65----------------
56 66
Documentation/media/kapi/v4l2-event.rst+2−0
@@ -67,6 +67,8 @@ type). · 66 unmodified lines
67 67
68The ops argument allows the driver to specify a number of callbacks:68The ops argument allows the driver to specify a number of callbacks:
69 69
70.. tabularcolumns:: |p{1.5cm}|p{16.0cm}|
71
70======== ==============================================================72======== ==============================================================
71Callback Description73Callback Description
72======== ==============================================================74======== ==============================================================
Documentation/media/media_kapi.rst+3−1
@@ -20,7 +20,9 @@ more details. · 19 unmodified lines
20 20
21For more details see the file COPYING in the source distribution of Linux.21For more details see the file COPYING in the source distribution of Linux.
22 22
23.. class:: toc-title23.. only:: html
24
25 .. class:: toc-title
24 26
25 Table of Contents27 Table of Contents
26 28
Documentation/media/media_uapi.rst+3−1
@@ -14,7 +14,9 @@ any later version published by the Free Software Foundation. A copy of · 13 unmodified lines
14the license is included in the chapter entitled "GNU Free Documentation14the license is included in the chapter entitled "GNU Free Documentation
15License".15License".
16 16
17.. class:: toc-title17.. only:: html
18
19 .. class:: toc-title
18 20
19 Table of Contents21 Table of Contents
20 22
Documentation/media/uapi/cec/cec-api.rst+4−1
@@ -10,7 +10,10 @@ Part V - Consumer Electronics Control API · 9 unmodified lines
10 10
11This part describes the CEC: Consumer Electronics Control11This part describes the CEC: Consumer Electronics Control
12 12
13.. class:: toc-title13
14.. only:: html
15
16 .. class:: toc-title
14 17
15 Table of Contents18 Table of Contents
16 19
Documentation/media/uapi/cec/cec-func-close.rst+1−1
@@ -40,7 +40,7 @@ freed. The device configuration remain unchanged. · 39 unmodified lines
40Return Value40Return Value
41============41============
42 42
43:c:func:`close()` returns 0 on success. On error, -1 is returned, and43:c:func:`close() <cec-close>` returns 0 on success. On error, -1 is returned, and
44``errno`` is set appropriately. Possible error codes are:44``errno`` is set appropriately. Possible error codes are:
45 45
46``EBADF``46``EBADF``
Documentation/media/uapi/cec/cec-func-ioctl.rst+1−1
@@ -39,7 +39,7 @@ Arguments · 38 unmodified lines
39Description39Description
40===========40===========
41 41
42The :c:func:`ioctl()` function manipulates cec device parameters. The42The :c:func:`ioctl() <cec-ioctl>` function manipulates cec device parameters. The
43argument ``fd`` must be an open file descriptor.43argument ``fd`` must be an open file descriptor.
44 44
45The ioctl ``request`` code specifies the cec function to be called. It45The ioctl ``request`` code specifies the cec function to be called. It
Documentation/media/uapi/cec/cec-func-open.rst+2−2
@@ -46,7 +46,7 @@ Arguments · 45 unmodified lines
46Description46Description
47===========47===========
48 48
49To open a cec device applications call :c:func:`open()` with the49To open a cec device applications call :c:func:`open() <cec-open>` with the
50desired device name. The function has no side effects; the device50desired device name. The function has no side effects; the device
51configuration remain unchanged.51configuration remain unchanged.
52 52
@@ -58,7 +58,7 @@ EBADF. · 5 unmodified lines
58Return Value58Return Value
59============59============
60 60
61:c:func:`open()` returns the new file descriptor on success. On error,61:c:func:`open() <cec-open>` returns the new file descriptor on success. On error,
62-1 is returned, and ``errno`` is set appropriately. Possible error codes62-1 is returned, and ``errno`` is set appropriately. Possible error codes
63include:63include:
64 64
Documentation/media/uapi/cec/cec-func-poll.rst+4−4
@@ -39,10 +39,10 @@ Arguments · 38 unmodified lines
39Description39Description
40===========40===========
41 41
42With the :c:func:`poll()` function applications can wait for CEC42With the :c:func:`poll() <cec-poll>` function applications can wait for CEC
43events.43events.
44 44
45On success :c:func:`poll()` returns the number of file descriptors45On success :c:func:`poll() <cec-poll>` returns the number of file descriptors
46that have been selected (that is, file descriptors for which the46that have been selected (that is, file descriptors for which the
47``revents`` field of the respective struct :c:type:`pollfd`47``revents`` field of the respective struct :c:type:`pollfd`
48is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in48is non-zero). CEC devices set the ``POLLIN`` and ``POLLRDNORM`` flags in
@@ -53,13 +53,13 @@ then the ``POLLPRI`` flag is set. When the function times out it returns · 4 unmodified lines
53a value of zero, on failure it returns -1 and the ``errno`` variable is53a value of zero, on failure it returns -1 and the ``errno`` variable is
54set appropriately.54set appropriately.
55 55
56For more details see the :c:func:`poll()` manual page.56For more details see the :c:func:`poll() <cec-poll>` manual page.
57 57
58 58
59Return Value59Return Value
60============60============
61 61
62On success, :c:func:`poll()` returns the number structures which have62On success, :c:func:`poll() <cec-poll>` returns the number structures which have
63non-zero ``revents`` fields, or zero if the call timed out. On error -163non-zero ``revents`` fields, or zero if the call timed out. On error -1
64is returned, and the ``errno`` variable is set appropriately:64is returned, and the ``errno`` variable is set appropriately:
65 65
Documentation/media/uapi/cec/cec-funcs.rst+0−1
@@ -7,7 +7,6 @@ Function Reference · 6 unmodified lines
7 7
8.. toctree::8.. toctree::
9 :maxdepth: 19 :maxdepth: 1
10 :numbered:
11 10
12 cec-func-open11 cec-func-open
13 cec-func-close12 cec-func-close
Documentation/media/uapi/cec/cec-ioc-adap-g-caps.rst+8−1
@@ -21,7 +21,7 @@ Arguments · 20 unmodified lines
21=========21=========
22 22
23``fd``23``fd``
24 File descriptor returned by :ref:`open() <cec-func-open>`.24 File descriptor returned by :c:func:`open() <cec-open>`.
25 25
26``argp``26``argp``
27 27
@@ -121,6 +121,13 @@ returns the information to the application. The ioctl never fails. · 93 unmodified lines
121 high. This makes it impossible to use CEC to wake up displays that121 high. This makes it impossible to use CEC to wake up displays that
122 set the HPD pin low when in standby mode, but keep the CEC bus122 set the HPD pin low when in standby mode, but keep the CEC bus
123 alive.123 alive.
124 * .. _`CEC-CAP-MONITOR-PIN`:
125
126 - ``CEC_CAP_MONITOR_PIN``
127 - 0x00000080
128 - The CEC hardware can monitor CEC pin changes from low to high voltage
129 and vice versa. When in pin monitoring mode the application will
130 receive ``CEC_EVENT_PIN_CEC_LOW`` and ``CEC_EVENT_PIN_CEC_HIGH`` events.
124 131
125 132
126 133
Documentation/media/uapi/cec/cec-ioc-adap-g-log-addrs.rst+9−4
@@ -48,7 +48,9 @@ can only be called by a file descriptor in initiator mode (see :ref:`CEC_S_MODE` · 47 unmodified lines
48the ``EBUSY`` error code will be returned.48the ``EBUSY`` error code will be returned.
49 49
50To clear existing logical addresses set ``num_log_addrs`` to 0. All other fields50To clear existing logical addresses set ``num_log_addrs`` to 0. All other fields
51will be ignored in that case. The adapter will go to the unconfigured state.51will be ignored in that case. The adapter will go to the unconfigured state and the
52``cec_version``, ``vendor_id`` and ``osd_name`` fields are all reset to their default
53values (CEC version 2.0, no vendor ID and an empty OSD name).
52 54
53If the physical address is valid (see :ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`),55If the physical address is valid (see :ref:`ioctl CEC_ADAP_S_PHYS_ADDR <CEC_ADAP_S_PHYS_ADDR>`),
54then this ioctl will block until all requested logical56then this ioctl will block until all requested logical
@@ -63,7 +65,7 @@ logical address types are already defined will return with error ``EBUSY``. · 8 unmodified lines
63 65
64.. c:type:: cec_log_addrs66.. c:type:: cec_log_addrs
65 67
66.. tabularcolumns:: |p{1.0cm}|p{7.5cm}|p{8.0cm}|68.. tabularcolumns:: |p{1.0cm}|p{8.0cm}|p{7.5cm}|
67 69
68.. cssclass:: longtable70.. cssclass:: longtable
69 71
@@ -146,6 +148,9 @@ logical address types are already defined will return with error ``EBUSY``. · 76 unmodified lines
146 give the CEC framework more information about the device type, even148 give the CEC framework more information about the device type, even
147 though the framework won't use it directly in the CEC message.149 though the framework won't use it directly in the CEC message.
148 150
151
152.. tabularcolumns:: |p{7.8cm}|p{1.0cm}|p{8.7cm}|
153
149.. _cec-log-addrs-flags:154.. _cec-log-addrs-flags:
150 155
151.. flat-table:: Flags for struct cec_log_addrs156.. flat-table:: Flags for struct cec_log_addrs
@@ -173,7 +178,7 @@ logical address types are already defined will return with error ``EBUSY``. · 21 unmodified lines
173 to avoid trivial snooping of the keystrokes.178 to avoid trivial snooping of the keystrokes.
174 * .. _`CEC-LOG-ADDRS-FL-CDC-ONLY`:179 * .. _`CEC-LOG-ADDRS-FL-CDC-ONLY`:
175 180
176 - `CEC_LOG_ADDRS_FL_CDC_ONLY`181 - ``CEC_LOG_ADDRS_FL_CDC_ONLY``
177 - 4182 - 4
178 - If this flag is set, then the device is CDC-Only. CDC-Only CEC devices183 - If this flag is set, then the device is CDC-Only. CDC-Only CEC devices
179 are CEC devices that can only handle CDC messages.184 are CEC devices that can only handle CDC messages.
@@ -181,7 +186,7 @@ logical address types are already defined will return with error ``EBUSY``. · 1 unmodified line
181 All other messages are ignored.186 All other messages are ignored.
182 187
183 188
184.. tabularcolumns:: |p{6.6cm}|p{2.2cm}|p{8.7cm}|189.. tabularcolumns:: |p{7.8cm}|p{1.0cm}|p{8.7cm}|
185 190
186.. _cec-versions:191.. _cec-versions:
187 192
Documentation/media/uapi/cec/cec-ioc-dqevent.rst+26−5
@@ -22,7 +22,7 @@ Arguments · 21 unmodified lines
22=========22=========
23 23
24``fd``24``fd``
25 File descriptor returned by :ref:`open() <cec-func-open>`.25 File descriptor returned by :c:func:`open() <cec-open>`.
26 26
27``argp``27``argp``
28 28
@@ -87,7 +87,7 @@ it is guaranteed that the state did change in between the two events. · 58 unmodified lines
87 this is more than enough.87 this is more than enough.
88 88
89 89
90.. tabularcolumns:: |p{1.0cm}|p{4.2cm}|p{2.5cm}|p{8.8cm}|90.. tabularcolumns:: |p{1.0cm}|p{4.4cm}|p{2.5cm}|p{9.6cm}|
91 91
92.. c:type:: cec_event92.. c:type:: cec_event
93 93
@@ -98,10 +98,11 @@ it is guaranteed that the state did change in between the two events. · 4 unmodified lines
98 98
99 * - __u6499 * - __u64
100 - ``ts``100 - ``ts``
101 - :cspan:`1` Timestamp of the event in ns.101 - :cspan:`1`\ Timestamp of the event in ns.
102 102
103 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock. To access103 The timestamp has been taken from the ``CLOCK_MONOTONIC`` clock.
104 the same clock from userspace use :c:func:`clock_gettime`.104
105 To access the same clock from userspace use :c:func:`clock_gettime`.
105 * - __u32106 * - __u32
106 - ``event``107 - ``event``
107 - :cspan:`1` The CEC event type, see :ref:`cec-events`.108 - :cspan:`1` The CEC event type, see :ref:`cec-events`.
@@ -146,6 +147,20 @@ it is guaranteed that the state did change in between the two events. · 38 unmodified lines
146 - 2147 - 2
147 - Generated if one or more CEC messages were lost because the148 - Generated if one or more CEC messages were lost because the
148 application didn't dequeue CEC messages fast enough.149 application didn't dequeue CEC messages fast enough.
150 * .. _`CEC-EVENT-PIN-CEC-LOW`:
151
152 - ``CEC_EVENT_PIN_CEC_LOW``
153 - 3
154 - Generated if the CEC pin goes from a high voltage to a low voltage.
155 Only applies to adapters that have the ``CEC_CAP_MONITOR_PIN``
156 capability set.
157 * .. _`CEC-EVENT-PIN-CEC-HIGH`:
158
159 - ``CEC_EVENT_PIN_CEC_HIGH``
160 - 4
161 - Generated if the CEC pin goes from a low voltage to a high voltage.
162 Only applies to adapters that have the ``CEC_CAP_MONITOR_PIN``
163 capability set.
149 164
150 165
151.. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}|166.. tabularcolumns:: |p{6.0cm}|p{0.6cm}|p{10.9cm}|
@@ -165,6 +180,12 @@ it is guaranteed that the state did change in between the two events. · 13 unmodified lines
165 opened. See the table above for which events do this. This allows180 opened. See the table above for which events do this. This allows
166 applications to learn the initial state of the CEC adapter at181 applications to learn the initial state of the CEC adapter at
167 open() time.182 open() time.
183 * .. _`CEC-EVENT-FL-DROPPED-EVENTS`:
184
185 - ``CEC_EVENT_FL_DROPPED_EVENTS``
186 - 2
187 - Set if one or more events of the given event type have been dropped.
188 This is an indication that the application cannot keep up.
168 189
169 190
170 191
Documentation/media/uapi/cec/cec-ioc-g-mode.rst+56−26
@@ -108,6 +108,8 @@ Available follower modes are: · 107 unmodified lines
108 108
109.. _cec-mode-follower_e:109.. _cec-mode-follower_e:
110 110
111.. cssclass:: longtable
112
111.. flat-table:: Follower Modes113.. flat-table:: Follower Modes
112 :header-rows: 0114 :header-rows: 0
113 :stub-columns: 0115 :stub-columns: 0
@@ -149,13 +151,28 @@ Available follower modes are: · 35 unmodified lines
149 code. You cannot become a follower if :ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>`151 code. You cannot become a follower if :ref:`CEC_CAP_TRANSMIT <CEC-CAP-TRANSMIT>`
150 is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>` was specified,152 is not set or if :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>` was specified,
151 the ``EINVAL`` error code is returned in that case.153 the ``EINVAL`` error code is returned in that case.
154 * .. _`CEC-MODE-MONITOR-PIN`:
155
156 - ``CEC_MODE_MONITOR_PIN``
157 - 0xd0
158 - Put the file descriptor into pin monitoring mode. Can only be used in
159 combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`,
160 otherwise the ``EINVAL`` error code will be returned.
161 This mode requires that the :ref:`CEC_CAP_MONITOR_PIN <CEC-CAP-MONITOR-PIN>`
162 capability is set, otherwise the ``EINVAL`` error code is returned.
163 While in pin monitoring mode this file descriptor can receive the
164 ``CEC_EVENT_PIN_CEC_LOW`` and ``CEC_EVENT_PIN_CEC_HIGH`` events to see the
165 low-level CEC pin transitions. This is very useful for debugging.
166 This mode is only allowed if the process has the ``CAP_NET_ADMIN``
167 capability. If that is not set, then the ``EPERM`` error code is returned.
152 * .. _`CEC-MODE-MONITOR`:168 * .. _`CEC-MODE-MONITOR`:
153 169
154 - ``CEC_MODE_MONITOR``170 - ``CEC_MODE_MONITOR``
155 - 0xe0171 - 0xe0
156 - Put the file descriptor into monitor mode. Can only be used in172 - Put the file descriptor into monitor mode. Can only be used in
157 combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`, otherwise EINVAL error173 combination with :ref:`CEC_MODE_NO_INITIATOR <CEC-MODE-NO-INITIATOR>`,i
158 code will be returned. In monitor mode all messages this CEC174 otherwise the ``EINVAL`` error code will be returned.
175 In monitor mode all messages this CEC
159 device transmits and all messages it receives (both broadcast176 device transmits and all messages it receives (both broadcast
160 messages and directed messages for one its logical addresses) will177 messages and directed messages for one its logical addresses) will
161 be reported. This is very useful for debugging. This is only178 be reported. This is very useful for debugging. This is only
@@ -191,55 +208,68 @@ Core message processing details: · 29 unmodified lines
191 * .. _`CEC-MSG-GET-CEC-VERSION`:208 * .. _`CEC-MSG-GET-CEC-VERSION`:
192 209
193 - ``CEC_MSG_GET_CEC_VERSION``210 - ``CEC_MSG_GET_CEC_VERSION``
194 - When in passthrough mode this message has to be handled by211 - The core will return the CEC version that was set with
195 userspace, otherwise the core will return the CEC version that was212 :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`,
196 set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.213 except when in passthrough mode. In passthrough mode the core
214 does nothing and this message has to be handled by a follower
215 instead.
197 * .. _`CEC-MSG-GIVE-DEVICE-VENDOR-ID`:216 * .. _`CEC-MSG-GIVE-DEVICE-VENDOR-ID`:
198 217
199 - ``CEC_MSG_GIVE_DEVICE_VENDOR_ID``218 - ``CEC_MSG_GIVE_DEVICE_VENDOR_ID``
200 - When in passthrough mode this message has to be handled by219 - The core will return the vendor ID that was set with
201 userspace, otherwise the core will return the vendor ID that was220 :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`,
202 set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.221 except when in passthrough mode. In passthrough mode the core
222 does nothing and this message has to be handled by a follower
223 instead.
203 * .. _`CEC-MSG-ABORT`:224 * .. _`CEC-MSG-ABORT`:
204 225
205 - ``CEC_MSG_ABORT``226 - ``CEC_MSG_ABORT``
206 - When in passthrough mode this message has to be handled by227 - The core will return a Feature Abort message with reason
207 userspace, otherwise the core will return a feature refused228 'Feature Refused' as per the specification, except when in
208 message as per the specification.229 passthrough mode. In passthrough mode the core does nothing
230 and this message has to be handled by a follower instead.
209 * .. _`CEC-MSG-GIVE-PHYSICAL-ADDR`:231 * .. _`CEC-MSG-GIVE-PHYSICAL-ADDR`:
210 232
211 - ``CEC_MSG_GIVE_PHYSICAL_ADDR``233 - ``CEC_MSG_GIVE_PHYSICAL_ADDR``
212 - When in passthrough mode this message has to be handled by234 - The core will report the current physical address, except when
213 userspace, otherwise the core will report the current physical235 in passthrough mode. In passthrough mode the core does nothing
214 address.236 and this message has to be handled by a follower instead.
215 * .. _`CEC-MSG-GIVE-OSD-NAME`:237 * .. _`CEC-MSG-GIVE-OSD-NAME`:
216 238
217 - ``CEC_MSG_GIVE_OSD_NAME``239 - ``CEC_MSG_GIVE_OSD_NAME``
218 - When in passthrough mode this message has to be handled by240 - The core will report the current OSD name that was set with
219 userspace, otherwise the core will report the current OSD name as241 :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`,
220 was set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`.242 except when in passthrough mode. In passthrough mode the core
243 does nothing and this message has to be handled by a follower
244 instead.
221 * .. _`CEC-MSG-GIVE-FEATURES`:245 * .. _`CEC-MSG-GIVE-FEATURES`:
222 246
223 - ``CEC_MSG_GIVE_FEATURES``247 - ``CEC_MSG_GIVE_FEATURES``
224 - When in passthrough mode this message has to be handled by248 - The core will do nothing if the CEC version is older than 2.0,
225 userspace, otherwise the core will report the current features as249 otherwise it will report the current features that were set with
226 was set with :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`250 :ref:`ioctl CEC_ADAP_S_LOG_ADDRS <CEC_ADAP_S_LOG_ADDRS>`,
227 or the message is ignored if the CEC version was older than 2.0.251 except when in passthrough mode. In passthrough mode the core
252 does nothing (for any CEC version) and this message has to be handled
253 by a follower instead.
228 * .. _`CEC-MSG-USER-CONTROL-PRESSED`:254 * .. _`CEC-MSG-USER-CONTROL-PRESSED`:
229 255
230 - ``CEC_MSG_USER_CONTROL_PRESSED``256 - ``CEC_MSG_USER_CONTROL_PRESSED``
231 - If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set, then generate a remote control key257 - If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set and if
232 press. This message is always passed on to userspace.258 :ref:`CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU <CEC-LOG-ADDRS-FL-ALLOW-RC-PASSTHRU>`
259 is set, then generate a remote control key
260 press. This message is always passed on to the follower(s).
233 * .. _`CEC-MSG-USER-CONTROL-RELEASED`:261 * .. _`CEC-MSG-USER-CONTROL-RELEASED`:
234 262
235 - ``CEC_MSG_USER_CONTROL_RELEASED``263 - ``CEC_MSG_USER_CONTROL_RELEASED``
236 - If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set, then generate a remote control key264 - If :ref:`CEC_CAP_RC <CEC-CAP-RC>` is set and if
237 release. This message is always passed on to userspace.265 :ref:`CEC_LOG_ADDRS_FL_ALLOW_RC_PASSTHRU <CEC-LOG-ADDRS-FL-ALLOW-RC-PASSTHRU>`
266 is set, then generate a remote control key
267 release. This message is always passed on to the follower(s).
238 * .. _`CEC-MSG-REPORT-PHYSICAL-ADDR`:268 * .. _`CEC-MSG-REPORT-PHYSICAL-ADDR`:
239 269
240 - ``CEC_MSG_REPORT_PHYSICAL_ADDR``270 - ``CEC_MSG_REPORT_PHYSICAL_ADDR``
241 - The CEC framework will make note of the reported physical address271 - The CEC framework will make note of the reported physical address
242 and then just pass the message on to userspace.272 and then just pass the message on to the follower(s).
243 273
244 274
245 275
Documentation/media/uapi/cec/cec-ioc-receive.rst+2−0
@@ -195,6 +195,8 @@ View On' messages from initiator 0xf ('Unregistered') to destination 0 ('TV'). · 194 unmodified lines
195 valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.195 valid if the :ref:`CEC_TX_STATUS_ERROR <CEC-TX-STATUS-ERROR>` status bit is set.
196 196
197 197
198.. tabularcolumns:: |p{6.2cm}|p{1.0cm}|p{10.3cm}|
199
198.. _cec-msg-flags:200.. _cec-msg-flags:
199 201
200.. flat-table:: Flags for struct cec_msg202.. flat-table:: Flags for struct cec_msg
Documentation/media/uapi/dvb/audio-channel-select.rst+1−1
@@ -44,7 +44,7 @@ Arguments · 43 unmodified lines
44Description44Description
45-----------45-----------
46 46
47This ioctl is for DVB devices only. To control a V4L2 decoder use the47This ioctl is for Digital TV devices only. To control a V4L2 decoder use the
48V4L2 ``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` control instead.48V4L2 ``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` control instead.
49 49
50This ioctl call asks the Audio Device to select the requested channel if50This ioctl call asks the Audio Device to select the requested channel if
Documentation/media/uapi/dvb/audio-fclose.rst+4−4
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _audio_fclose:3.. _audio_fclose:
4 4
5=================5========================
6DVB audio close()6Digital TV audio close()
7=================7========================
8 8
9Name9Name
10----10----
11 11
12DVB audio close()12Digital TV audio close()
13 13
14.. attention:: This ioctl is deprecated14.. attention:: This ioctl is deprecated
15 15
Documentation/media/uapi/dvb/audio-fopen.rst+4−4
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _audio_fopen:3.. _audio_fopen:
4 4
5================5=======================
6DVB audio open()6Digital TV audio open()
7================7=======================
8 8
9Name9Name
10----10----
11 11
12DVB audio open()12Digital TV audio open()
13 13
14.. attention:: This ioctl is deprecated14.. attention:: This ioctl is deprecated
15 15
Documentation/media/uapi/dvb/audio-fwrite.rst+4−4
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _audio_fwrite:3.. _audio_fwrite:
4 4
5=================5=========================
6DVB audio write()6Digital TV audio write()
7=================7=========================
8 8
9Name9Name
10----10----
11 11
12DVB audio write()12Digital TV audio write()
13 13
14.. attention:: This ioctl is deprecated14.. attention:: This ioctl is deprecated
15 15
Documentation/media/uapi/dvb/audio-set-av-sync.rst+1−1
@@ -38,7 +38,7 @@ Arguments · 37 unmodified lines
38 38
39 - boolean state39 - boolean state
40 40
41 - Tells the DVB subsystem if A/V synchronization shall be ON or OFF.41 - Tells the Digital TV subsystem if A/V synchronization shall be ON or OFF.
42 42
43 TRUE: AV-sync ON43 TRUE: AV-sync ON
44 44
Documentation/media/uapi/dvb/audio-set-bypass-mode.rst+3−3
@@ -38,7 +38,7 @@ Arguments · 37 unmodified lines
38 - boolean mode38 - boolean mode
39 39
40 - Enables or disables the decoding of the current Audio stream in40 - Enables or disables the decoding of the current Audio stream in
41 the DVB subsystem.41 the Digital TV subsystem.
42 42
43 TRUE: Bypass is disabled43 TRUE: Bypass is disabled
44 44
@@ -50,8 +50,8 @@ Description · 5 unmodified lines
50 50
51This ioctl call asks the Audio Device to bypass the Audio decoder and51This ioctl call asks the Audio Device to bypass the Audio decoder and
52forward the stream without decoding. This mode shall be used if streams52forward the stream without decoding. This mode shall be used if streams
53that can’t be handled by the DVB system shall be decoded. Dolby53that can’t be handled by the Digial TV system shall be decoded. Dolby
54DigitalTM streams are automatically forwarded by the DVB subsystem if54DigitalTM streams are automatically forwarded by the Digital TV subsystem if
55the hardware can handle it.55the hardware can handle it.
56 56
57 57
Documentation/media/uapi/dvb/audio-set-mute.rst+1−1
@@ -48,7 +48,7 @@ Arguments · 47 unmodified lines
48Description48Description
49-----------49-----------
50 50
51This ioctl is for DVB devices only. To control a V4L2 decoder use the51This ioctl is for Digital TV devices only. To control a V4L2 decoder use the
52V4L2 :ref:`VIDIOC_DECODER_CMD` with the52V4L2 :ref:`VIDIOC_DECODER_CMD` with the
53``V4L2_DEC_CMD_START_MUTE_AUDIO`` flag instead.53``V4L2_DEC_CMD_START_MUTE_AUDIO`` flag instead.
54 54
Documentation/media/uapi/dvb/audio.rst+7−6
@@ -2,15 +2,16 @@ · 1 unmodified line
2 2
3.. _dvb_audio:3.. _dvb_audio:
4 4
5################5#######################
6DVB Audio Device6Digital TV Audio Device
7################7#######################
8The DVB audio device controls the MPEG2 audio decoder of the DVB8
9hardware. It can be accessed through ``/dev/dvb/adapter?/audio?``. Data9The Digital TV audio device controls the MPEG2 audio decoder of the Digital
10TV hardware. It can be accessed through ``/dev/dvb/adapter?/audio?``. Data
10types and and ioctl definitions can be accessed by including11types and and ioctl definitions can be accessed by including
11``linux/dvb/audio.h`` in your application.12``linux/dvb/audio.h`` in your application.
12 13
13Please note that some DVB cards don’t have their own MPEG decoder, which14Please note that some Digital TV cards don’t have their own MPEG decoder, which
14results in the omission of the audio and video device.15results in the omission of the audio and video device.
15 16
16These ioctls were also used by V4L2 to control MPEG decoders implemented17These ioctls were also used by V4L2 to control MPEG decoders implemented
Documentation/media/uapi/dvb/audio_h.rst+0−9
@@ -1,9 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _audio_h:
4
5*********************
6DVB Audio Header File
7*********************
8
9.. kernel-include:: $BUILDDIR/audio.h.rst
Documentation/media/uapi/dvb/ca-fclose.rst+9−12
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _ca_fclose:3.. _ca_fclose:
4 4
5==============5=====================
6DVB CA close()6Digital TV CA close()
7==============7=====================
8 8
9Name9Name
10----10----
11 11
12DVB CA close()12Digital TV CA close()
13 13
14 14
15Synopsis15Synopsis
@@ -34,13 +34,10 @@ This system call closes a previously opened CA device. · 18 unmodified lines
34Return Value34Return Value
35------------35------------
36 36
37.. flat-table::37On success 0 is returned.
38 :header-rows: 0
39 :stub-columns: 0
40 38
39On error -1 is returned, and the ``errno`` variable is set
40appropriately.
41 41
42 - .. row 142Generic error codes are described at the
43 43:ref:`Generic Error Codes <gen-errors>` chapter.
44 - ``EBADF``
45
46 - fd is not a valid open file descriptor.
Documentation/media/uapi/dvb/ca-fopen.rst+25−46
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _ca_fopen:3.. _ca_fopen:
4 4
5=============5====================
6DVB CA open()6Digital TV CA open()
7=============7====================
8 8
9Name9Name
10----10----
11 11
12DVB CA open()12Digital TV CA open()
13 13
14 14
15Synopsis15Synopsis
@@ -23,25 +23,25 @@ Arguments · 7 unmodified lines
23---------23---------
24 24
25``name``25``name``
26 Name of specific DVB CA device.26 Name of specific Digital TV CA device.
27 27
28``flags``28``flags``
29 A bit-wise OR of the following flags:29 A bit-wise OR of the following flags:
30 30
31.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
32
31.. flat-table::33.. flat-table::
32 :header-rows: 034 :header-rows: 0
33 :stub-columns: 035 :stub-columns: 0
36 :widths: 1 16
34 37
35 -38 - - ``O_RDONLY``
36 - O_RDONLY
37 - read-only access39 - read-only access
38 40
39 -41 - - ``O_RDWR``
40 - O_RDWR
41 - read/write access42 - read/write access
42 43
43 -44 - - ``O_NONBLOCK``
44 - O_NONBLOCK
45 - open in non-blocking mode45 - open in non-blocking mode
46 (blocking mode is the default)46 (blocking mode is the default)
47 47
@@ -49,50 +49,29 @@ Arguments · 1 unmodified line
49Description49Description
50-----------50-----------
51 51
52This system call opens a named ca device (e.g. /dev/ost/ca) for52This system call opens a named ca device (e.g. ``/dev/dvb/adapter?/ca?``)
53subsequent use.53for subsequent use.
54 54
55When an open() call has succeeded, the device will be ready for use. The55When an ``open()`` call has succeeded, the device will be ready for use. The
56significance of blocking or non-blocking mode is described in the56significance of blocking or non-blocking mode is described in the
57documentation for functions where there is a difference. It does not57documentation for functions where there is a difference. It does not
58affect the semantics of the open() call itself. A device opened in58affect the semantics of the ``open()`` call itself. A device opened in
59blocking mode can later be put into non-blocking mode (and vice versa)59blocking mode can later be put into non-blocking mode (and vice versa)
60using the F_SETFL command of the fcntl system call. This is a standard60using the ``F_SETFL`` command of the ``fcntl`` system call. This is a
61system call, documented in the Linux manual page for fcntl. Only one61standard system call, documented in the Linux manual page for fcntl.
62user can open the CA Device in O_RDWR mode. All other attempts to open62Only one user can open the CA Device in ``O_RDWR`` mode. All other
63the device in this mode will fail, and an error code will be returned.63attempts to open the device in this mode will fail, and an error code
64will be returned.
64 65
65 66
66Return Value67Return Value
67------------68------------
68 69
69.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
70
71.. flat-table::
72 :header-rows: 0
73 :stub-columns: 0
74
75
76 - .. row 1
77
78 - ``ENODEV``
79
80 - Device driver not loaded/available.
81
82 - .. row 2
83
84 - ``EINTERNAL``
85
86 - Internal error.
87
88 - .. row 3
89
90 - ``EBUSY``
91
92 - Device or resource busy.
93 70
94 - .. row 471On success 0 is returned.
95 72
96 - ``EINVAL``73On error -1 is returned, and the ``errno`` variable is set
74appropriately.
97 75
98 - Invalid argument.76Generic error codes are described at the
77:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-get-cap.rst+8−32
@@ -28,43 +28,19 @@ Arguments · 27 unmodified lines
28``caps``28``caps``
29 Pointer to struct :c:type:`ca_caps`.29 Pointer to struct :c:type:`ca_caps`.
30 30
31.. c:type:: struct ca_caps
32
33.. flat-table:: struct ca_caps
34 :header-rows: 1
35 :stub-columns: 0
36
37 -
38 - type
39 - name
40 - description
41 -
42 - unsigned int
43 - slot_num
44 - total number of CA card and module slots
45 -
46 - unsigned int
47 - slot_type
48 - bitmask with all supported slot types
49 -
50 - unsigned int
51 - descr_num
52 - total number of descrambler slots (keys)
53 -
54 - unsigned int
55 - descr_type
56 - bit mask with all supported descr types
57
58
59Description31Description
60-----------32-----------
61 33
62.. note:: This ioctl is undocumented. Documentation is welcome.34Queries the Kernel for information about the available CA and descrambler
63 35slots, and their types.
64 36
65Return Value37Return Value
66------------38------------
67 39
68On success 0 is returned, on error -1 and the ``errno`` variable is set40On success 0 is returned and :c:type:`ca_caps` is filled.
69appropriately. The generic error codes are described at the41
42On error, -1 is returned and the ``errno`` variable is set
43appropriately.
44
45The generic error codes are described at the
70:ref:`Generic Error Codes <gen-errors>` chapter.46:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-get-descr-info.rst+4−25
@@ -27,37 +27,16 @@ Arguments · 26 unmodified lines
27``desc``27``desc``
28 Pointer to struct :c:type:`ca_descr_info`.28 Pointer to struct :c:type:`ca_descr_info`.
29 29
30.. c:type:: struct ca_descr_info
31
32.. flat-table:: struct ca_descr_info
33 :header-rows: 1
34 :stub-columns: 0
35
36 -
37 - type
38 - name
39 - description
40
41 -
42 - unsigned int
43 - num
44 - number of available descramblers (keys)
45 -
46 - unsigned int
47 - type
48 - type of supported scrambling system. Valid values are:
49 ``CA_ECD``, ``CA_NDS`` and ``CA_DSS``.
50
51
52Description30Description
53-----------31-----------
54 32
55.. note:: This ioctl is undocumented. Documentation is welcome.33Returns information about all descrambler slots.
56
57 34
58Return Value35Return Value
59------------36------------
60 37
61On success 0 is returned, on error -1 and the ``errno`` variable is set38On success 0 is returned, and :c:type:`ca_descr_info` is filled.
39
40On error -1 is returned, and the ``errno`` variable is set
62appropriately. The generic error codes are described at the41appropriately. The generic error codes are described at the
63:ref:`Generic Error Codes <gen-errors>` chapter.42:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-get-msg.rst+12−34
@@ -28,47 +28,25 @@ Arguments · 27 unmodified lines
28``msg``28``msg``
29 Pointer to struct :c:type:`ca_msg`.29 Pointer to struct :c:type:`ca_msg`.
30 30
31Description
32-----------
31 33
32.. c:type:: struct ca_msg34Receives a message via a CI CA module.
33
34.. flat-table:: struct ca_msg
35 :header-rows: 1
36 :stub-columns: 0
37
38 -
39 - type
40 - name
41 - description
42 -
43 - unsigned int
44 - index
45 -
46
47 -
48 - unsigned int
49 - type
50 -
51 35
52 -36.. note::
53 - unsigned int
54 - length
55 -
56 37
57 -38 Please notice that, on most drivers, this is done by reading from
58 - unsigned char39 the /dev/adapter?/ca? device node.
59 - msg[256]
60 -
61 40
62 41
63Description42Return Value
64-----------43------------
65 44
66.. note:: This ioctl is undocumented. Documentation is welcome.
67 45
46On success 0 is returned.
68 47
69Return Value48On error -1 is returned, and the ``errno`` variable is set
70------------49appropriately.
71 50
72On success 0 is returned, on error -1 and the ``errno`` variable is set51Generic error codes are described at the
73appropriately. The generic error codes are described at the
74:ref:`Generic Error Codes <gen-errors>` chapter.52:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-get-slot-info.rst+17−85
@@ -26,100 +26,32 @@ Arguments · 25 unmodified lines
26 File descriptor returned by a previous call to :c:func:`open() <cec-open>`.26 File descriptor returned by a previous call to :c:func:`open() <cec-open>`.
27 27
28``info``28``info``
29 Pointer to struct c:type:`ca_slot_info`.29 Pointer to struct :c:type:`ca_slot_info`.
30 30
31.. _ca_slot_info_type:31Description
32-----------
32 33
33.. flat-table:: ca_slot_info types34Returns information about a CA slot identified by
34 :header-rows: 135:c:type:`ca_slot_info`.slot_num.
35 :stub-columns: 0
36 36
37 -
38 - type
39 - name
40 - description
41 -
42 - CA_CI
43 - 1
44 - CI high level interface
45
46 -
47 - CA_CI_LINK
48 - 2
49 - CI link layer level interface
50
51 -
52 - CA_CI_PHYS
53 - 4
54 - CI physical layer level interface
55
56 -
57 - CA_DESCR
58 - 8
59 - built-in descrambler
60
61 -
62 - CA_SC
63 - 128
64 - simple smart card interface
65
66.. _ca_slot_info_flag:
67
68.. flat-table:: ca_slot_info flags
69 :header-rows: 1
70 :stub-columns: 0
71 37
72 -38Return Value
73 - type39------------
74 - name
75 - description
76 40
77 -41On success 0 is returned, and :c:type:`ca_slot_info` is filled.
78 - CA_CI_MODULE_PRESENT
79 - 1
80 - module (or card) inserted
81 42
82 -43On error -1 is returned, and the ``errno`` variable is set
83 - CA_CI_MODULE_READY44appropriately.
84 - 2
85 -
86 45
87.. c:type:: ca_slot_info46.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
88 47
89.. flat-table:: struct ca_slot_info48.. flat-table::
90 :header-rows: 149 :header-rows: 0
91 :stub-columns: 050 :stub-columns: 0
51 :widths: 1 16
92 52
93 -53 - - ``ENODEV``
94 - type54 - the slot is not available.
95 - name
96 - description
97
98 -
99 - int
100 - num
101 - slot number
102
103 -
104 - int
105 - type
106 - CA interface this slot supports, as defined at :ref:`ca_slot_info_type`.
107
108 -
109 - unsigned int
110 - flags
111 - flags as defined at :ref:`ca_slot_info_flag`.
112
113
114Description
115-----------
116
117.. note:: This ioctl is undocumented. Documentation is welcome.
118
119
120Return Value
121------------
122 55
123On success 0 is returned, on error -1 and the ``errno`` variable is set56The generic error codes are described at the
124appropriately. The generic error codes are described at the
125:ref:`Generic Error Codes <gen-errors>` chapter.57:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-reset.rst+8−3
@@ -28,12 +28,17 @@ Arguments · 27 unmodified lines
28Description28Description
29-----------29-----------
30 30
31.. note:: This ioctl is undocumented. Documentation is welcome.31Puts the Conditional Access hardware on its initial state. It should
32be called before start using the CA hardware.
32 33
33 34
34Return Value35Return Value
35------------36------------
36 37
37On success 0 is returned, on error -1 and the ``errno`` variable is set38On success 0 is returned.
38appropriately. The generic error codes are described at the39
40On error -1 is returned, and the ``errno`` variable is set
41appropriately.
42
43Generic error codes are described at the
39:ref:`Generic Error Codes <gen-errors>` chapter.44:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-send-msg.rst+11−3
@@ -32,12 +32,20 @@ Arguments · 31 unmodified lines
32Description32Description
33-----------33-----------
34 34
35.. note:: This ioctl is undocumented. Documentation is welcome.35Sends a message via a CI CA module.
36 36
37.. note::
38
39 Please notice that, on most drivers, this is done by writing
40 to the /dev/adapter?/ca? device node.
37 41
38Return Value42Return Value
39------------43------------
40 44
41On success 0 is returned, on error -1 and the ``errno`` variable is set45On success 0 is returned.
42appropriately. The generic error codes are described at the46
47On error -1 is returned, and the ``errno`` variable is set
48appropriately.
49
50Generic error codes are described at the
43:ref:`Generic Error Codes <gen-errors>` chapter.51:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-set-descr.rst+8−5
@@ -28,16 +28,19 @@ Arguments · 27 unmodified lines
28``msg``28``msg``
29 Pointer to struct :c:type:`ca_descr`.29 Pointer to struct :c:type:`ca_descr`.
30 30
31
32Description31Description
33-----------32-----------
34 33
35.. note:: This ioctl is undocumented. Documentation is welcome.34CA_SET_DESCR is used for feeding descrambler CA slots with descrambling
36 35keys (refered as control words).
37 36
38Return Value37Return Value
39------------38------------
40 39
41On success 0 is returned, on error -1 and the ``errno`` variable is set40On success 0 is returned.
42appropriately. The generic error codes are described at the41
42On error -1 is returned, and the ``errno`` variable is set
43appropriately.
44
45Generic error codes are described at the
43:ref:`Generic Error Codes <gen-errors>` chapter.46:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca-set-pid.rst+0−60
@@ -1,60 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _CA_SET_PID:
4
5==========
6CA_SET_PID
7==========
8
9Name
10----
11
12CA_SET_PID
13
14
15Synopsis
16--------
17
18.. c:function:: int ioctl(fd, CA_SET_PID, struct ca_pid *pid)
19 :name: CA_SET_PID
20
21
22Arguments
23---------
24
25``fd``
26 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.
27
28``pid``
29 Pointer to struct :c:type:`ca_pid`.
30
31.. c:type:: ca_pid
32
33.. flat-table:: struct ca_pid
34 :header-rows: 1
35 :stub-columns: 0
36
37 -
38 - unsigned int
39 - pid
40 - Program ID
41
42 -
43 - int
44 - index
45 - PID index. Use -1 to disable.
46
47
48
49Description
50-----------
51
52.. note:: This ioctl is undocumented. Documentation is welcome.
53
54
55Return Value
56------------
57
58On success 0 is returned, on error -1 and the ``errno`` variable is set
59appropriately. The generic error codes are described at the
60:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/ca.rst+11−5
@@ -2,14 +2,20 @@ · 1 unmodified line
2 2
3.. _dvb_ca:3.. _dvb_ca:
4 4
5#############5####################
6DVB CA Device6Digital TV CA Device
7#############7####################
8The DVB CA device controls the conditional access hardware. It can be8
9accessed through ``/dev/dvb/adapter?/ca?``. Data types and and ioctl9The Digital TV CA device controls the conditional access hardware. It
10can be accessed through ``/dev/dvb/adapter?/ca?``. Data types and and ioctl
10definitions can be accessed by including ``linux/dvb/ca.h`` in your11definitions can be accessed by including ``linux/dvb/ca.h`` in your
11application.12application.
12 13
14.. note::
15
16 There are three ioctls at this API that aren't documented:
17 :ref:`CA_GET_MSG`, :ref:`CA_SEND_MSG` and :ref:`CA_SET_DESCR`.
18 Documentation for them are welcome.
13 19
14.. toctree::20.. toctree::
15 :maxdepth: 121 :maxdepth: 1
Documentation/media/uapi/dvb/ca_data_types.rst+1−102
@@ -6,105 +6,4 @@ · 5 unmodified lines
6CA Data Types6CA Data Types
7*************7*************
8 8
9 9.. kernel-doc:: include/uapi/linux/dvb/ca.h
10.. c:type:: ca_slot_info
11
12ca_slot_info_t
13==============
14
15
16.. code-block:: c
17
18 typedef struct ca_slot_info {
19 int num; /* slot number */
20
21 int type; /* CA interface this slot supports */
22 #define CA_CI 1 /* CI high level interface */
23 #define CA_CI_LINK 2 /* CI link layer level interface */
24 #define CA_CI_PHYS 4 /* CI physical layer level interface */
25 #define CA_DESCR 8 /* built-in descrambler */
26 #define CA_SC 128 /* simple smart card interface */
27
28 unsigned int flags;
29 #define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
30 #define CA_CI_MODULE_READY 2
31 } ca_slot_info_t;
32
33
34.. c:type:: ca_descr_info
35
36ca_descr_info_t
37===============
38
39
40.. code-block:: c
41
42 typedef struct ca_descr_info {
43 unsigned int num; /* number of available descramblers (keys) */
44 unsigned int type; /* type of supported scrambling system */
45 #define CA_ECD 1
46 #define CA_NDS 2
47 #define CA_DSS 4
48 } ca_descr_info_t;
49
50
51.. c:type:: ca_caps
52
53ca_caps_t
54=========
55
56
57.. code-block:: c
58
59 typedef struct ca_caps {
60 unsigned int slot_num; /* total number of CA card and module slots */
61 unsigned int slot_type; /* OR of all supported types */
62 unsigned int descr_num; /* total number of descrambler slots (keys) */
63 unsigned int descr_type;/* OR of all supported types */
64 } ca_cap_t;
65
66
67.. c:type:: ca_msg
68
69ca_msg_t
70========
71
72
73.. code-block:: c
74
75 /* a message to/from a CI-CAM */
76 typedef struct ca_msg {
77 unsigned int index;
78 unsigned int type;
79 unsigned int length;
80 unsigned char msg[256];
81 } ca_msg_t;
82
83
84.. c:type:: ca_descr
85
86ca_descr_t
87==========
88
89
90.. code-block:: c
91
92 typedef struct ca_descr {
93 unsigned int index;
94 unsigned int parity;
95 unsigned char cw[8];
96 } ca_descr_t;
97
98
99.. c:type:: ca_pid
100
101ca-pid
102======
103
104
105.. code-block:: c
106
107 typedef struct ca_pid {
108 unsigned int pid;
109 int index; /* -1 == disable*/
110 } ca_pid_t;
Documentation/media/uapi/dvb/ca_function_calls.rst+0−1
@@ -18,4 +18,3 @@ CA Function Calls · 17 unmodified lines
18 ca-get-msg18 ca-get-msg
19 ca-send-msg19 ca-send-msg
20 ca-set-descr20 ca-set-descr
21 ca-set-pid
Documentation/media/uapi/dvb/ca_h.rst+0−9
@@ -1,9 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _ca_h:
4
5**********************************
6DVB Conditional Access Header File
7**********************************
8
9.. kernel-include:: $BUILDDIR/ca.h.rst
Documentation/media/uapi/dvb/demux.rst+9−4
@@ -2,10 +2,15 @@ · 1 unmodified line
2 2
3.. _dvb_demux:3.. _dvb_demux:
4 4
5################5#######################
6DVB Demux Device6Digital TV Demux Device
7################7#######################
8The DVB demux device controls the filters of the DVB hardware/software.8
9The Digital TV demux device controls the MPEG-TS filters for the
10digital TV. If the driver and hardware supports, those filters are
11implemented at the hardware. Otherwise, the Kernel provides a software
12emulation.
13
9It can be accessed through ``/dev/adapter?/demux?``. Data types and and14It can be accessed through ``/dev/adapter?/demux?``. Data types and and
10ioctl definitions can be accessed by including ``linux/dvb/dmx.h`` in15ioctl definitions can be accessed by including ``linux/dvb/dmx.h`` in
11your application.16your application.
Documentation/media/uapi/dvb/dmx-add-pid.rst+8−4
@@ -33,13 +33,17 @@ Description · 32 unmodified lines
33-----------33-----------
34 34
35This ioctl call allows to add multiple PIDs to a transport stream filter35This ioctl call allows to add multiple PIDs to a transport stream filter
36previously set up with DMX_SET_PES_FILTER and output equal to36previously set up with :ref:`DMX_SET_PES_FILTER` and output equal to
37DMX_OUT_TSDEMUX_TAP.37:c:type:`DMX_OUT_TSDEMUX_TAP <dmx_output>`.
38 38
39 39
40Return Value40Return Value
41------------41------------
42 42
43On success 0 is returned, on error -1 and the ``errno`` variable is set43On success 0 is returned.
44appropriately. The generic error codes are described at the44
45On error -1 is returned, and the ``errno`` variable is set
46appropriately.
47
48Generic error codes are described at the
45:ref:`Generic Error Codes <gen-errors>` chapter.49:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-fclose.rst+12−14
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _dmx_fclose:3.. _dmx_fclose:
4 4
5=================5========================
6DVB demux close()6Digital TV demux close()
7=================7========================
8 8
9Name9Name
10----10----
11 11
12DVB demux close()12Digital TV demux close()
13 13
14 14
15Synopsis15Synopsis
@@ -23,25 +23,23 @@ Arguments · 7 unmodified lines
23---------23---------
24 24
25``fd``25``fd``
26 File descriptor returned by a previous call to :c:func:`open() <dvb-ca-open>`.26 File descriptor returned by a previous call to
27 :c:func:`open() <dvb-dmx-open>`.
27 28
28Description29Description
29-----------30-----------
30 31
31This system call deactivates and deallocates a filter that was32This system call deactivates and deallocates a filter that was
32previously allocated via the open() call.33previously allocated via the :c:func:`open() <dvb-dmx-open>` call.
33 34
34 35
35Return Value36Return Value
36------------37------------
37 38
38.. flat-table::39On success 0 is returned.
39 :header-rows: 0
40 :stub-columns: 0
41 40
41On error, -1 is returned and the ``errno`` variable is set
42appropriately.
42 43
43 - .. row 144The generic error codes are described at the
44 45:ref:`Generic Error Codes <gen-errors>` chapter.
45 - ``EBADF``
46
47 - fd is not a valid open file descriptor.
Documentation/media/uapi/dvb/dmx-fopen.rst+29−37
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _dmx_fopen:3.. _dmx_fopen:
4 4
5================5=======================
6DVB demux open()6Digital TV demux open()
7================7=======================
8 8
9Name9Name
10----10----
11 11
12DVB demux open()12Digital TV demux open()
13 13
14 14
15Synopsis15Synopsis
@@ -22,25 +22,28 @@ Arguments · 6 unmodified lines
22---------22---------
23 23
24``name``24``name``
25 Name of specific DVB demux device.25 Name of specific Digital TV demux device.
26 26
27``flags``27``flags``
28 A bit-wise OR of the following flags:28 A bit-wise OR of the following flags:
29 29
30.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
31
30.. flat-table::32.. flat-table::
31 :header-rows: 033 :header-rows: 0
32 :stub-columns: 034 :stub-columns: 0
35 :widths: 1 16
33 36
34 -37 -
35 - O_RDONLY38 - ``O_RDONLY``
36 - read-only access39 - read-only access
37 40
38 -41 -
39 - O_RDWR42 - ``O_RDWR``
40 - read/write access43 - read/write access
41 44
42 -45 -
43 - O_NONBLOCK46 - ``O_NONBLOCK``
44 - open in non-blocking mode47 - open in non-blocking mode
45 (blocking mode is the default)48 (blocking mode is the default)
46 49
@@ -48,52 +51,41 @@ Arguments · 1 unmodified line
48Description51Description
49-----------52-----------
50 53
51This system call, used with a device name of /dev/dvb/adapter0/demux0,54This system call, used with a device name of ``/dev/dvb/adapter?/demux?``,
52allocates a new filter and returns a handle which can be used for55allocates a new filter and returns a handle which can be used for
53subsequent control of that filter. This call has to be made for each56subsequent control of that filter. This call has to be made for each
54filter to be used, i.e. every returned file descriptor is a reference to57filter to be used, i.e. every returned file descriptor is a reference to
55a single filter. /dev/dvb/adapter0/dvr0 is a logical device to be used58a single filter. ``/dev/dvb/adapter?/dvr?`` is a logical device to be used
56for retrieving Transport Streams for digital video recording. When59for retrieving Transport Streams for digital video recording. When
57reading from this device a transport stream containing the packets from60reading from this device a transport stream containing the packets from
58all PES filters set in the corresponding demux device61all PES filters set in the corresponding demux device
59(/dev/dvb/adapter0/demux0) having the output set to DMX_OUT_TS_TAP. A62(``/dev/dvb/adapter?/demux?``) having the output set to ``DMX_OUT_TS_TAP``.
60recorded Transport Stream is replayed by writing to this device.63A recorded Transport Stream is replayed by writing to this device.
61 64
62The significance of blocking or non-blocking mode is described in the65The significance of blocking or non-blocking mode is described in the
63documentation for functions where there is a difference. It does not66documentation for functions where there is a difference. It does not
64affect the semantics of the open() call itself. A device opened in67affect the semantics of the ``open()`` call itself. A device opened
65blocking mode can later be put into non-blocking mode (and vice versa)68in blocking mode can later be put into non-blocking mode (and vice versa)
66using the F_SETFL command of the fcntl system call.69using the ``F_SETFL`` command of the fcntl system call.
67 70
68 71
69Return Value72Return Value
70------------73------------
71 74
72.. flat-table::75On success 0 is returned.
73 :header-rows: 0
74 :stub-columns: 0
75
76
77 - .. row 1
78
79 - ``ENODEV``
80
81 - Device driver not loaded/available.
82 76
83 - .. row 277On error -1 is returned, and the ``errno`` variable is set
78appropriately.
84 79
85 - ``EINVAL``80.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
86 81
87 - Invalid argument.82.. flat-table::
88 83 :header-rows: 0
89 - .. row 384 :stub-columns: 0
90 85 :widths: 1 16
91 - ``EMFILE``
92 86
87 - - ``EMFILE``
93 - “Too many open files”, i.e. no more filters available.88 - “Too many open files”, i.e. no more filters available.
94 89
95 - .. row 490The generic error codes are described at the
96 91:ref:`Generic Error Codes <gen-errors>` chapter.
97 - ``ENOMEM``
98
99 - The driver failed to allocate enough memory.
Documentation/media/uapi/dvb/dmx-fread.rst+32−46
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _dmx_fread:3.. _dmx_fread:
4 4
5================5=======================
6DVB demux read()6Digital TV demux read()
7================7=======================
8 8
9Name9Name
10----10----
11 11
12DVB demux read()12Digital TV demux read()
13 13
14 14
15Synopsis15Synopsis
@@ -33,62 +33,48 @@ Arguments · 17 unmodified lines
33Description33Description
34-----------34-----------
35 35
36This system call returns filtered data, which might be section or PES36This system call returns filtered data, which might be section or Packetized
37data. The filtered data is transferred from the driver’s internal37Elementary Stream (PES) data. The filtered data is transferred from
38circular buffer to buf. The maximum amount of data to be transferred is38the driver’s internal circular buffer to ``buf``. The maximum amount of data
39implied by count.39to be transferred is implied by count.
40
41.. note::
42
43 if a section filter created with
44 :c:type:`DMX_CHECK_CRC <dmx_sct_filter_params>` flag set,
45 data that fails on CRC check will be silently ignored.
46
40 47
41Return Value48Return Value
42------------49------------
43 50
51On success 0 is returned.
52
53On error -1 is returned, and the ``errno`` variable is set
54appropriately.
55
44.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|56.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
45 57
46.. flat-table::58.. flat-table::
47 :header-rows: 059 :header-rows: 0
48 :stub-columns: 060 :stub-columns: 0
61 :widths: 1 16
49 62
63 - - ``EWOULDBLOCK``
64 - No data to return and ``O_NONBLOCK`` was specified.
50 65
51 - .. row 166 - - ``EOVERFLOW``
52
53 - ``EWOULDBLOCK``
54
55 - No data to return and O_NONBLOCK was specified.
56
57 - .. row 2
58
59 - ``EBADF``
60
61 - fd is not a valid open file descriptor.
62
63 - .. row 3
64
65 - ``ECRC``
66
67 - Last section had a CRC error - no data returned. The buffer is
68 flushed.
69
70 - .. row 4
71
72 - ``EOVERFLOW``
73
74 -
75
76 - .. row 5
77
78 -
79 - The filtered data was not read from the buffer in due time,67 - The filtered data was not read from the buffer in due time,
80 resulting in non-read data being lost. The buffer is flushed.68 resulting in non-read data being lost. The buffer is flushed.
81 69
82 - .. row 670 - - ``ETIMEDOUT``
83 71 - The section was not loaded within the stated timeout period.
84 - ``ETIMEDOUT``72 See ioctl :ref:`DMX_SET_FILTER` for how to set a timeout.
85
86 - The section was not loaded within the stated timeout period. See
87 ioctl DMX_SET_FILTER for how to set a timeout.
88 73
89 - .. row 774 - - ``EFAULT``
75 - The driver failed to write to the callers buffer due to an
76 invalid \*buf pointer.
90 77
91 - ``EFAULT``
92 78
93 - The driver failed to write to the callers buffer due to an invalid79The generic error codes are described at the
94 \*buf pointer.80:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-fwrite.rst+19−22
@@ -2,14 +2,14 @@ · 1 unmodified line
2 2
3.. _dmx_fwrite:3.. _dmx_fwrite:
4 4
5=================5========================
6DVB demux write()6Digital TV demux write()
7=================7========================
8 8
9Name9Name
10----10----
11 11
12DVB demux write()12Digital TV demux write()
13 13
14 14
15Synopsis15Synopsis
@@ -34,42 +34,39 @@ Description · 18 unmodified lines
34-----------34-----------
35 35
36This system call is only provided by the logical device36This system call is only provided by the logical device
37/dev/dvb/adapter0/dvr0, associated with the physical demux device that37``/dev/dvb/adapter?/dvr?``, associated with the physical demux device that
38provides the actual DVR functionality. It is used for replay of a38provides the actual DVR functionality. It is used for replay of a
39digitally recorded Transport Stream. Matching filters have to be defined39digitally recorded Transport Stream. Matching filters have to be defined
40in the corresponding physical demux device, /dev/dvb/adapter0/demux0.40in the corresponding physical demux device, ``/dev/dvb/adapter?/demux?``.
41The amount of data to be transferred is implied by count.41The amount of data to be transferred is implied by count.
42 42
43 43
44Return Value44Return Value
45------------45------------
46 46
47On success 0 is returned.
48
49On error -1 is returned, and the ``errno`` variable is set
50appropriately.
51
47.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|52.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
48 53
49.. flat-table::54.. flat-table::
50 :header-rows: 055 :header-rows: 0
51 :stub-columns: 056 :stub-columns: 0
57 :widths: 1 16
52 58
53 - .. row 159 - - ``EWOULDBLOCK``
54 60 - No data was written. This might happen if ``O_NONBLOCK`` was
55 - ``EWOULDBLOCK``
56
57 - No data was written. This might happen if O_NONBLOCK was
58 specified and there is no more buffer space available (if61 specified and there is no more buffer space available (if
59 O_NONBLOCK is not specified the function will block until buffer62 ``O_NONBLOCK`` is not specified the function will block until buffer
60 space is available).63 space is available).
61 64
62 - .. row 265 - - ``EBUSY``
63
64 - ``EBUSY``
65
66 - This error code indicates that there are conflicting requests. The66 - This error code indicates that there are conflicting requests. The
67 corresponding demux device is setup to receive data from the67 corresponding demux device is setup to receive data from the
68 front- end. Make sure that these filters are stopped and that the68 front- end. Make sure that these filters are stopped and that the
69 filters with input set to DMX_IN_DVR are started.69 filters with input set to ``DMX_IN_DVR`` are started.
70
71 - .. row 3
72
73 - ``EBADF``
74 70
75 - fd is not a valid open file descriptor.71The generic error codes are described at the
72:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-get-caps.rst+0−41
@@ -1,41 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _DMX_GET_CAPS:
4
5============
6DMX_GET_CAPS
7============
8
9Name
10----
11
12DMX_GET_CAPS
13
14
15Synopsis
16--------
17
18.. c:function:: int ioctl(fd, DMX_GET_CAPS, struct dmx_caps *caps)
19 :name: DMX_GET_CAPS
20
21Arguments
22---------
23
24``fd``
25 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
26
27``caps``
28 Pointer to struct :c:type:`dmx_caps`
29
30
31Description
32-----------
33
34.. note:: This ioctl is undocumented. Documentation is welcome.
35
36Return Value
37------------
38
39On success 0 is returned, on error -1 and the ``errno`` variable is set
40appropriately. The generic error codes are described at the
41:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-get-event.rst+0−60
@@ -1,60 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _DMX_GET_EVENT:
4
5=============
6DMX_GET_EVENT
7=============
8
9Name
10----
11
12DMX_GET_EVENT
13
14
15Synopsis
16--------
17
18.. c:function:: int ioctl( int fd, DMX_GET_EVENT, struct dmx_event *ev)
19 :name: DMX_GET_EVENT
20
21
22Arguments
23---------
24
25``fd``
26 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
27
28``ev``
29 Pointer to the location where the event is to be stored.
30
31
32Description
33-----------
34
35This ioctl call returns an event if available. If an event is not
36available, the behavior depends on whether the device is in blocking or
37non-blocking mode. In the latter case, the call fails immediately with
38errno set to ``EWOULDBLOCK``. In the former case, the call blocks until an
39event becomes available.
40
41
42Return Value
43------------
44
45On success 0 is returned, on error -1 and the ``errno`` variable is set
46appropriately. The generic error codes are described at the
47:ref:`Generic Error Codes <gen-errors>` chapter.
48
49
50
51.. flat-table::
52 :header-rows: 0
53 :stub-columns: 0
54
55
56 - .. row 1
57
58 - ``EWOULDBLOCK``
59
60 - There is no event pending, and the device is in non-blocking mode.
Documentation/media/uapi/dvb/dmx-get-pes-pids.rst+26−4
@@ -25,18 +25,40 @@ Arguments · 24 unmodified lines
25 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.25 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
26 26
27``pids``27``pids``
28 Undocumented.28 Array used to store 5 Program IDs.
29 29
30 30
31Description31Description
32-----------32-----------
33 33
34.. note:: This ioctl is undocumented. Documentation is welcome.34This ioctl allows to query a DVB device to return the first PID used
35by audio, video, textext, subtitle and PCR programs on a given service.
36They're stored as:
37
38======================= ======== =======================================
39PID element position content
40======================= ======== =======================================
41pids[DMX_PES_AUDIO] 0 first audio PID
42pids[DMX_PES_VIDEO] 1 first video PID
43pids[DMX_PES_TELETEXT] 2 first teletext PID
44pids[DMX_PES_SUBTITLE] 3 first subtitle PID
45pids[DMX_PES_PCR] 4 first Program Clock Reference PID
46======================= ======== =======================================
47
48
49.. note::
50
51 A value equal to 0xffff means that the PID was not filled by the
52 Kernel.
35 53
36 54
37Return Value55Return Value
38------------56------------
39 57
40On success 0 is returned, on error -1 and the ``errno`` variable is set58On success 0 is returned.
41appropriately. The generic error codes are described at the59
60On error -1 is returned, and the ``errno`` variable is set
61appropriately.
62
63The generic error codes are described at the
42:ref:`Generic Error Codes <gen-errors>` chapter.64:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-get-stc.rst+18−10
@@ -25,34 +25,42 @@ Arguments · 24 unmodified lines
25 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.25 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
26 26
27``stc``27``stc``
28 Pointer to the location where the stc is to be stored.28 Pointer to :c:type:`dmx_stc` where the stc data is to be stored.
29 29
30 30
31Description31Description
32-----------32-----------
33 33
34This ioctl call returns the current value of the system time counter34This ioctl call returns the current value of the system time counter
35(which is driven by a PES filter of type DMX_PES_PCR). Some hardware35(which is driven by a PES filter of type :c:type:`DMX_PES_PCR <dmx_ts_pes>`).
36supports more than one STC, so you must specify which one by setting the36Some hardware supports more than one STC, so you must specify which one by
37num field of stc before the ioctl (range 0...n). The result is returned37setting the :c:type:`num <dmx_stc>` field of stc before the ioctl (range 0...n).
38in form of a ratio with a 64 bit numerator and a 32 bit denominator, so38The result is returned in form of a ratio with a 64 bit numerator
39the real 90kHz STC value is stc->stc / stc->base .39and a 32 bit denominator, so the real 90kHz STC value is
40``stc->stc / stc->base``.
40 41
41 42
42Return Value43Return Value
43------------44------------
44 45
45On success 0 is returned, on error -1 and the ``errno`` variable is set46On success 0 is returned.
46appropriately. The generic error codes are described at the47
47:ref:`Generic Error Codes <gen-errors>` chapter.48On error -1 is returned, and the ``errno`` variable is set
49appropriately.
50
51.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
48 52
49.. flat-table::53.. flat-table::
50 :header-rows: 054 :header-rows: 0
51 :stub-columns: 055 :stub-columns: 0
52 56 :widths: 1 16
53 57
54 - .. row 158 - .. row 1
55 59
56 - ``EINVAL``60 - ``EINVAL``
57 61
58 - Invalid stc number.62 - Invalid stc number.
63
64
65The generic error codes are described at the
66:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-remove-pid.rst+8−4
@@ -34,13 +34,17 @@ Description · 33 unmodified lines
34 34
35This ioctl call allows to remove a PID when multiple PIDs are set on a35This ioctl call allows to remove a PID when multiple PIDs are set on a
36transport stream filter, e. g. a filter previously set up with output36transport stream filter, e. g. a filter previously set up with output
37equal to DMX_OUT_TSDEMUX_TAP, created via either37equal to :c:type:`DMX_OUT_TSDEMUX_TAP <dmx_output>`, created via either
38DMX_SET_PES_FILTER or DMX_ADD_PID.38:ref:`DMX_SET_PES_FILTER` or :ref:`DMX_ADD_PID`.
39 39
40 40
41Return Value41Return Value
42------------42------------
43 43
44On success 0 is returned, on error -1 and the ``errno`` variable is set44On success 0 is returned.
45appropriately. The generic error codes are described at the45
46On error -1 is returned, and the ``errno`` variable is set
47appropriately.
48
49The generic error codes are described at the
46:ref:`Generic Error Codes <gen-errors>` chapter.50:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-set-buffer-size.rst+8−3
@@ -33,13 +33,18 @@ Description · 32 unmodified lines
33 33
34This ioctl call is used to set the size of the circular buffer used for34This ioctl call is used to set the size of the circular buffer used for
35filtered data. The default size is two maximum sized sections, i.e. if35filtered data. The default size is two maximum sized sections, i.e. if
36this function is not called a buffer size of 2 \* 4096 bytes will be36this function is not called a buffer size of ``2 * 4096`` bytes will be
37used.37used.
38 38
39 39
40Return Value40Return Value
41------------41------------
42 42
43On success 0 is returned, on error -1 and the ``errno`` variable is set43
44appropriately. The generic error codes are described at the44On success 0 is returned.
45
46On error -1 is returned, and the ``errno`` variable is set
47appropriately.
48
49The generic error codes are described at the
45:ref:`Generic Error Codes <gen-errors>` chapter.50:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-set-filter.rst+9−4
@@ -40,13 +40,18 @@ state whether a section should be CRC-checked, whether the filter should · 39 unmodified lines
40be a ”one-shot” filter, i.e. if the filtering operation should be40be a ”one-shot” filter, i.e. if the filtering operation should be
41stopped after the first section is received, and whether the filtering41stopped after the first section is received, and whether the filtering
42operation should be started immediately (without waiting for a42operation should be started immediately (without waiting for a
43DMX_START ioctl call). If a filter was previously set-up, this filter43:ref:`DMX_START` ioctl call). If a filter was previously set-up, this
44will be canceled, and the receive buffer will be flushed.44filter will be canceled, and the receive buffer will be flushed.
45 45
46 46
47Return Value47Return Value
48------------48------------
49 49
50On success 0 is returned, on error -1 and the ``errno`` variable is set50
51appropriately. The generic error codes are described at the51On success 0 is returned.
52
53On error -1 is returned, and the ``errno`` variable is set
54appropriately.
55
56The generic error codes are described at the
52:ref:`Generic Error Codes <gen-errors>` chapter.57:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-set-pes-filter.rst+9−3
@@ -42,15 +42,17 @@ capability is supported. · 41 unmodified lines
42Return Value42Return Value
43------------43------------
44 44
45On success 0 is returned, on error -1 and the ``errno`` variable is set45On success 0 is returned.
46appropriately. The generic error codes are described at the46
47:ref:`Generic Error Codes <gen-errors>` chapter.47On error -1 is returned, and the ``errno`` variable is set
48appropriately.
48 49
49.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|50.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
50 51
51.. flat-table::52.. flat-table::
52 :header-rows: 053 :header-rows: 0
53 :stub-columns: 054 :stub-columns: 0
55 :widths: 1 16
54 56
55 57
56 - .. row 158 - .. row 1
@@ -61,3 +63,7 @@ appropriately. The generic error codes are described at the · 4 unmodified lines
61 There are active filters filtering data from another input source.63 There are active filters filtering data from another input source.
62 Make sure that these filters are stopped before starting this64 Make sure that these filters are stopped before starting this
63 filter.65 filter.
66
67
68The generic error codes are described at the
69:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-set-source.rst+0−44
@@ -1,44 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _DMX_SET_SOURCE:
4
5==============
6DMX_SET_SOURCE
7==============
8
9Name
10----
11
12DMX_SET_SOURCE
13
14
15Synopsis
16--------
17
18.. c:function:: int ioctl(fd, DMX_SET_SOURCE, struct dmx_source *src)
19 :name: DMX_SET_SOURCE
20
21
22Arguments
23---------
24
25
26``fd``
27 File descriptor returned by :c:func:`open() <dvb-dmx-open>`.
28
29``src``
30 Undocumented.
31
32
33Description
34-----------
35
36.. note:: This ioctl is undocumented. Documentation is welcome.
37
38
39Return Value
40------------
41
42On success 0 is returned, on error -1 and the ``errno`` variable is set
43appropriately. The generic error codes are described at the
44:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-start.rst+10−5
@@ -29,15 +29,16 @@ Description · 28 unmodified lines
29-----------29-----------
30 30
31This ioctl call is used to start the actual filtering operation defined31This ioctl call is used to start the actual filtering operation defined
32via the ioctl calls DMX_SET_FILTER or DMX_SET_PES_FILTER.32via the ioctl calls :ref:`DMX_SET_FILTER` or :ref:`DMX_SET_PES_FILTER`.
33 33
34 34
35Return Value35Return Value
36------------36------------
37 37
38On success 0 is returned, on error -1 and the ``errno`` variable is set38On success 0 is returned.
39appropriately. The generic error codes are described at the39
40:ref:`Generic Error Codes <gen-errors>` chapter.40On error -1 is returned, and the ``errno`` variable is set
41appropriately.
41 42
42.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|43.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
43 44
@@ -51,7 +52,7 @@ appropriately. The generic error codes are described at the · 7 unmodified lines
51 - ``EINVAL``52 - ``EINVAL``
52 53
53 - Invalid argument, i.e. no filtering parameters provided via the54 - Invalid argument, i.e. no filtering parameters provided via the
54 DMX_SET_FILTER or DMX_SET_PES_FILTER functions.55 :ref:`DMX_SET_FILTER` or :ref:`DMX_SET_PES_FILTER` ioctls.
55 56
56 - .. row 257 - .. row 2
57 58
@@ -61,3 +62,7 @@ appropriately. The generic error codes are described at the · 3 unmodified lines
61 There are active filters filtering data from another input source.62 There are active filters filtering data from another input source.
62 Make sure that these filters are stopped before starting this63 Make sure that these filters are stopped before starting this
63 filter.64 filter.
65
66
67The generic error codes are described at the
68:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx-stop.rst+8−4
@@ -29,13 +29,17 @@ Description · 28 unmodified lines
29-----------29-----------
30 30
31This ioctl call is used to stop the actual filtering operation defined31This ioctl call is used to stop the actual filtering operation defined
32via the ioctl calls DMX_SET_FILTER or DMX_SET_PES_FILTER and32via the ioctl calls :ref:`DMX_SET_FILTER` or :ref:`DMX_SET_PES_FILTER` and
33started via the DMX_START command.33started via the :ref:`DMX_START` command.
34 34
35 35
36Return Value36Return Value
37------------37------------
38 38
39On success 0 is returned, on error -1 and the ``errno`` variable is set39On success 0 is returned.
40appropriately. The generic error codes are described at the40
41On error -1 is returned, and the ``errno`` variable is set
42appropriately.
43
44The generic error codes are described at the
41:ref:`Generic Error Codes <gen-errors>` chapter.45:ref:`Generic Error Codes <gen-errors>` chapter.
Documentation/media/uapi/dvb/dmx_fcalls.rst+0−3
@@ -18,10 +18,7 @@ Demux Function Calls · 17 unmodified lines
18 dmx-set-filter18 dmx-set-filter
19 dmx-set-pes-filter19 dmx-set-pes-filter
20 dmx-set-buffer-size20 dmx-set-buffer-size
21 dmx-get-event
22 dmx-get-stc21 dmx-get-stc
23 dmx-get-pes-pids22 dmx-get-pes-pids
24 dmx-get-caps
25 dmx-set-source
26 dmx-add-pid23 dmx-add-pid
27 dmx-remove-pid24 dmx-remove-pid
Documentation/media/uapi/dvb/dmx_h.rst+0−9
@@ -1,9 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. _dmx_h:
4
5*********************
6DVB Demux Header File
7*********************
8
9.. kernel-include:: $BUILDDIR/dmx.h.rst
Documentation/media/uapi/dvb/dmx_types.rst+1−224
@@ -6,227 +6,4 @@ · 5 unmodified lines
6Demux Data Types6Demux Data Types
7****************7****************
8 8
9Output for the demux9.. kernel-doc:: include/uapi/linux/dvb/dmx.h
10====================
11
12.. c:type:: dmx_output
13
14.. tabularcolumns:: |p{5.0cm}|p{12.5cm}|
15
16.. flat-table:: enum dmx_output
17 :header-rows: 1
18 :stub-columns: 0
19
20
21 - .. row 1
22
23 - ID
24
25 - Description
26
27 - .. row 2
28
29 - .. _DMX-OUT-DECODER:
30
31 DMX_OUT_DECODER
32
33 - Streaming directly to decoder.
34
35 - .. row 3
36
37 - .. _DMX-OUT-TAP:
38
39 DMX_OUT_TAP
40
41 - Output going to a memory buffer (to be retrieved via the read
42 command). Delivers the stream output to the demux device on which
43 the ioctl is called.
44
45 - .. row 4
46
47 - .. _DMX-OUT-TS-TAP:
48
49 DMX_OUT_TS_TAP
50
51 - Output multiplexed into a new TS (to be retrieved by reading from
52 the logical DVR device). Routes output to the logical DVR device
53 ``/dev/dvb/adapter?/dvr?``, which delivers a TS multiplexed from
54 all filters for which ``DMX_OUT_TS_TAP`` was specified.
55
56 - .. row 5
57
58 - .. _DMX-OUT-TSDEMUX-TAP:
59
60 DMX_OUT_TSDEMUX_TAP
61
62 - Like :ref:`DMX_OUT_TS_TAP <DMX-OUT-TS-TAP>` but retrieved
63 from the DMX device.
64
65
66dmx_input_t
67===========
68
69.. c:type:: dmx_input
70
71.. code-block:: c
72
73 typedef enum
74 {
75 DMX_IN_FRONTEND, /* Input from a front-end device. */
76 DMX_IN_DVR /* Input from the logical DVR device. */
77 } dmx_input_t;
78
79
80dmx_pes_type_t
81==============
82
83.. c:type:: dmx_pes_type
84
85
86.. code-block:: c
87
88 typedef enum
89 {
90 DMX_PES_AUDIO0,
91 DMX_PES_VIDEO0,
92 DMX_PES_TELETEXT0,
93 DMX_PES_SUBTITLE0,
94 DMX_PES_PCR0,
95
96 DMX_PES_AUDIO1,
97 DMX_PES_VIDEO1,
98 DMX_PES_TELETEXT1,
99 DMX_PES_SUBTITLE1,
100 DMX_PES_PCR1,
101
102 DMX_PES_AUDIO2,
103 DMX_PES_VIDEO2,
104 DMX_PES_TELETEXT2,
105 DMX_PES_SUBTITLE2,
106 DMX_PES_PCR2,
107
108 DMX_PES_AUDIO3,
109 DMX_PES_VIDEO3,
110 DMX_PES_TELETEXT3,
111 DMX_PES_SUBTITLE3,
112 DMX_PES_PCR3,
113
114 DMX_PES_OTHER
115 } dmx_pes_type_t;
116
117
118struct dmx_filter
119=================
120
121.. c:type:: dmx_filter
122
123.. code-block:: c
124
125 typedef struct dmx_filter
126 {
127 __u8 filter[DMX_FILTER_SIZE];
128 __u8 mask[DMX_FILTER_SIZE];
129 __u8 mode[DMX_FILTER_SIZE];
130 } dmx_filter_t;
131
132
133.. c:type:: dmx_sct_filter_params
134
135struct dmx_sct_filter_params
136============================
137
138
139.. code-block:: c
140
141 struct dmx_sct_filter_params
142 {
143 __u16 pid;
144 dmx_filter_t filter;
145 __u32 timeout;
146 __u32 flags;
147 #define DMX_CHECK_CRC 1
148 #define DMX_ONESHOT 2
149 #define DMX_IMMEDIATE_START 4
150 #define DMX_KERNEL_CLIENT 0x8000
151 };
152
153
154struct dmx_pes_filter_params
155============================
156
157.. c:type:: dmx_pes_filter_params
158
159.. code-block:: c
160
161 struct dmx_pes_filter_params
162 {
163 __u16 pid;
164 dmx_input_t input;
165 dmx_output_t output;
166 dmx_pes_type_t pes_type;
167 __u32 flags;
168 };
169
170
171struct dmx_event
172================
173
174.. c:type:: dmx_event
175
176.. code-block:: c
177
178 struct dmx_event
179 {
180 dmx_event_t event;
181 time_t timeStamp;
182 union
183 {
184 dmx_scrambling_status_t scrambling;
185 } u;
186 };
187
188
189struct dmx_stc
190==============
191
192.. c:type:: dmx_stc
193
194.. code-block:: c
195
196 struct dmx_stc {
197 unsigned int num; /* input : which STC? 0..N */
198 unsigned int base; /* output: divisor for stc to get 90 kHz clock */
199 __u64 stc; /* output: stc in 'base'*90 kHz units */
200 };
201
202
203struct dmx_caps
204===============
205
206.. c:type:: dmx_caps
207
208.. code-block:: c
209
210 typedef struct dmx_caps {
211 __u32 caps;
212 int num_decoders;
213 } dmx_caps_t;
214
215
216enum dmx_source
217===============
218
219.. c:type:: dmx_source
220
221.. code-block:: c
222
223 typedef enum dmx_source {
224 DMX_SOURCE_FRONT0 = 0,
225 DMX_SOURCE_FRONT1,
226 DMX_SOURCE_FRONT2,
227 DMX_SOURCE_FRONT3,
228 DMX_SOURCE_DVR0 = 16,
229 DMX_SOURCE_DVR1,
230 DMX_SOURCE_DVR2,
231 DMX_SOURCE_DVR3
232 } dmx_source_t;
Documentation/media/uapi/dvb/dtv-fe-stats.rst+0−17
@@ -1,17 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. c:type:: dtv_fe_stats
4
5*******************
6struct dtv_fe_stats
7*******************
8
9
10.. code-block:: c
11
12 #define MAX_DTV_STATS 4
13
14 struct dtv_fe_stats {
15 __u8 len;
16 struct dtv_stats stat[MAX_DTV_STATS];
17 } __packed;
Documentation/media/uapi/dvb/dtv-properties.rst+0−15
@@ -1,15 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. c:type:: dtv_properties
4
5*********************
6struct dtv_properties
7*********************
8
9
10.. code-block:: c
11
12 struct dtv_properties {
13 __u32 num;
14 struct dtv_property *props;
15 };
Documentation/media/uapi/dvb/dtv-property.rst+0−31
@@ -1,31 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. c:type:: dtv_property
4
5*******************
6struct dtv_property
7*******************
8
9
10.. code-block:: c
11
12 /* Reserved fields should be set to 0 */
13
14 struct dtv_property {
15 __u32 cmd;
16 __u32 reserved[3];
17 union {
18 __u32 data;
19 struct dtv_fe_stats st;
20 struct {
21 __u8 data[32];
22 __u32 len;
23 __u32 reserved1[3];
24 void *reserved2;
25 } buffer;
26 } u;
27 int result;
28 } __attribute__ ((packed));
29
30 /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */
31 #define DTV_IOCTL_MAX_MSGS 64
Documentation/media/uapi/dvb/dtv-stats.rst+0−18
@@ -1,18 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3.. c:type:: dtv_stats
4
5****************
6struct dtv_stats
7****************
8
9
10.. code-block:: c
11
12 struct dtv_stats {
13 __u8 scale; /* enum fecap_scale_params type */
14 union {
15 __u64 uvalue; /* for counters and relative scales */
16 __s64 svalue; /* for 1/1000 dB measures */
17 };
18 } __packed;
Documentation/media/uapi/dvb/dvb-fe-read-status.rst+1−1
@@ -20,6 +20,6 @@ Signal statistics are provided via · 19 unmodified lines
20.. note::20.. note::
21 21
22 Most statistics require the demodulator to be fully locked22 Most statistics require the demodulator to be fully locked
23 (e. g. with FE_HAS_LOCK bit set). See23 (e. g. with :c:type:`FE_HAS_LOCK <fe_status>` bit set). See
24 :ref:`Frontend statistics indicators <frontend-stat-properties>` for24 :ref:`Frontend statistics indicators <frontend-stat-properties>` for
25 more details.25 more details.
Documentation/media/uapi/dvb/dvb-frontend-parameters.rst+1−1
@@ -24,7 +24,7 @@ instead, in order to be able to support the newer System Delivery like · 23 unmodified lines
24DVB-S2, DVB-T2, DVB-C2, ISDB, etc.24DVB-S2, DVB-T2, DVB-C2, ISDB, etc.
25 25
26All kinds of parameters are combined as a union in the26All kinds of parameters are combined as a union in the
27FrontendParameters structure:27``dvb_frontend_parameters`` structure:
28 28
29 29
30.. code-block:: c30.. code-block:: c
Documentation/media/uapi/dvb/dvbapi.rst+29−14
@@ -10,12 +10,27 @@ Part II - Digital TV API · 9 unmodified lines
10 10
11.. note::11.. note::
12 12
13 This API is also known as **DVB API**, although it is generic13 This API is also known as Linux **DVB API**.
14 enough to support all digital TV standards.14
15 It it was originally written to support the European digital TV
16 standard (DVB), and later extended to support all digital TV standards.
17
18 In order to avoid confusion, within this document, it was opted to refer to
19 it, and to associated hardware as **Digital TV**.
20
21 The word **DVB** is reserved to be used for:
22
23 - the Digital TV API version
24 (e. g. DVB API version 3 or DVB API version 5);
25 - digital TV data types (enums, structs, defines, etc);
26 - digital TV device nodes (``/dev/dvb/...``);
27 - the European DVB standard.
15 28
16**Version 5.10**29**Version 5.10**
17 30
18.. class:: toc-title31.. only:: html
32
33 .. class:: toc-title
19 34
20 Table of Contents35 Table of Contents
21 36
@@ -30,12 +45,7 @@ Part II - Digital TV API · 8 unmodified lines
30 net45 net
31 legacy_dvb_apis46 legacy_dvb_apis
32 examples47 examples
33 audio_h48 headers
34 ca_h
35 dmx_h
36 frontend_h
37 net_h
38 video_h
39 49
40 50
41**********************51**********************
@@ -46,11 +56,11 @@ Authors: · 4 unmodified lines
46 56
47- J. K. Metzler, Ralph <rjkm@metzlerbros.de>57- J. K. Metzler, Ralph <rjkm@metzlerbros.de>
48 58
49 - Original author of the DVB API documentation.59 - Original author of the Digital TV API documentation.
50 60
51- O. C. Metzler, Marcus <rjkm@metzlerbros.de>61- O. C. Metzler, Marcus <rjkm@metzlerbros.de>
52 62
53 - Original author of the DVB API documentation.63 - Original author of the Digital TV API documentation.
54 64
55- Carvalho Chehab, Mauro <m.chehab@kernel.org>65- Carvalho Chehab, Mauro <m.chehab@kernel.org>
56 66
@@ -58,21 +68,26 @@ Authors: · 1 unmodified line
58 68
59**Copyright** |copy| 2002-2003 : Convergence GmbH69**Copyright** |copy| 2002-2003 : Convergence GmbH
60 70
61**Copyright** |copy| 2009-2016 : Mauro Carvalho Chehab71**Copyright** |copy| 2009-2017 : Mauro Carvalho Chehab
62 72
63****************73****************
64Revision History74Revision History
65****************75****************
66 76
77:revision: 2.2.0 / 2017-09-01 (*mcc*)
78
79Most gaps between the uAPI document and the Kernel implementation
80got fixed for the non-legacy API.
81
67:revision: 2.1.0 / 2015-05-29 (*mcc*)82:revision: 2.1.0 / 2015-05-29 (*mcc*)
68 83
69DocBook improvements and cleanups, in order to document the system calls84DocBook improvements and cleanups, in order to document the system calls
70on a more standard way and provide more description about the current85on a more standard way and provide more description about the current
71DVB API.86Digital TV API.
72 87
73:revision: 2.0.4 / 2011-05-06 (*mcc*)88:revision: 2.0.4 / 2011-05-06 (*mcc*)
74 89
75Add more information about DVB APIv5, better describing the frontend90Add more information about DVBv5 API, better describing the frontend
76GET/SET props ioctl's.91GET/SET props ioctl's.
77 92
78 93
Documentation/media/uapi/dvb/dvbproperty-006.rst+0−12
@@ -1,12 +0,0 @@
1.. -*- coding: utf-8; mode: rst -*-
2
3**************
4Property types
5**************
6
7On :ref:`FE_GET_PROPERTY and FE_SET_PROPERTY <FE_GET_PROPERTY>`,
8the actual action is determined by the dtv_property cmd/data pairs.
9With one single ioctl, is possible to get/set up to 64 properties. The
10actual meaning of each property is described on the next sections.
11
12The available frontend property types are shown on the next section.
Documentation/media/uapi/dvb/dvbproperty.rst+49−41
@@ -2,63 +2,76 @@ · 1 unmodified line
2 2
3.. _frontend-properties:3.. _frontend-properties:
4 4
5DVB Frontend properties5**************
6=======================6Property types
7**************
7 8
8Tuning into a Digital TV physical channel and starting decoding it9Tuning into a Digital TV physical channel and starting decoding it
9requires changing a set of parameters, in order to control the tuner,10requires changing a set of parameters, in order to control the tuner,
10the demodulator, the Linear Low-noise Amplifier (LNA) and to set the11the demodulator, the Linear Low-noise Amplifier (LNA) and to set the
11antenna subsystem via Satellite Equipment Control (SEC), on satellite12antenna subsystem via Satellite Equipment Control - SEC (on satellite
12systems. The actual parameters are specific to each particular digital13systems). The actual parameters are specific to each particular digital
13TV standards, and may change as the digital TV specs evolves.14TV standards, and may change as the digital TV specs evolves.
14 15
15In the past, the strategy used was to have a union with the parameters16In the past (up to DVB API version 3 - DVBv3), the strategy used was to have a
16needed to tune for DVB-S, DVB-C, DVB-T and ATSC delivery systems grouped17union with the parameters needed to tune for DVB-S, DVB-C, DVB-T and
17there. The problem is that, as the second generation standards appeared,18ATSC delivery systems grouped there. The problem is that, as the second
18those structs were not big enough to contain the additional parameters.19generation standards appeared, the size of such union was not big
19Also, the union didn't have any space left to be expanded without20enough to group the structs that would be required for those new
20breaking userspace. So, the decision was to deprecate the legacy21standards. Also, extending it would break userspace.
21union/struct based approach, in favor of a properties set approach.22
23So, the legacy union/struct based approach was deprecated, in favor
24of a properties set approach. On such approach,
25:ref:`FE_GET_PROPERTY and FE_SET_PROPERTY <FE_GET_PROPERTY>` are used
26to setup the frontend and read its status.
27
28The actual action is determined by a set of dtv_property cmd/data pairs.
29With one single ioctl, is possible to get/set up to 64 properties.
30
31This section describes the new and recommended way to set the frontend,
32with supports all digital TV delivery systems.
22 33
23.. note::34.. note::
24 35
25 On Linux DVB API version 3, setting a frontend were done via36 1. On Linux DVB API version 3, setting a frontend was done via
26 struct :c:type:`dvb_frontend_parameters`.37 struct :c:type:`dvb_frontend_parameters`.
27 This got replaced on version 5 (also called "S2API", as this API were38
28 added originally_enabled to provide support for DVB-S2), because the39 2. Don't use DVB API version 3 calls on hardware with supports
29 old API has a very limited support to new standards and new hardware.40 newer standards. Such API provides no suport or a very limited
30 This section describes the new and recommended way to set the frontend,41 support to new standards and/or new hardware.
31 with suppports all digital TV delivery systems.42
32 43 3. Nowadays, most frontends support multiple delivery systems.
33Example: with the properties based approach, in order to set the tuner44 Only with DVB API version 5 calls it is possible to switch between
34to a DVB-C channel at 651 kHz, modulated with 256-QAM, FEC 3/4 and45 the multiple delivery systems supported by a frontend.
35symbol rate of 5.217 Mbauds, those properties should be sent to46
47 4. DVB API version 5 is also called *S2API*, as the first
48 new standard added to it was DVB-S2.
49
50**Example**: in order to set the hardware to tune into a DVB-C channel
51at 651 kHz, modulated with 256-QAM, FEC 3/4 and symbol rate of 5.217
52Mbauds, those properties should be sent to
36:ref:`FE_SET_PROPERTY <FE_GET_PROPERTY>` ioctl:53:ref:`FE_SET_PROPERTY <FE_GET_PROPERTY>` ioctl:
37 54
38- :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` =55 :ref:`DTV_DELIVERY_SYSTEM <DTV-DELIVERY-SYSTEM>` = SYS_DVBC_ANNEX_A
39 SYS_DVBC_ANNEX_A
40 56
41- :ref:`DTV_FREQUENCY <DTV-FREQUENCY>` = 65100000057 :ref:`DTV_FREQUENCY <DTV-FREQUENCY>` = 651000000
42 58
43- :ref:`DTV_MODULATION <DTV-MODULATION>` = QAM_25659 :ref:`DTV_MODULATION <DTV-MODULATION>` = QAM_256
44 60
45- :ref:`DTV_INVERSION <DTV-INVERSION>` = INVERSION_AUTO61 :ref:`DTV_INVERSION <DTV-INVERSION>` = INVERSION_AUTO
46 62
47- :ref:`DTV_SYMBOL_RATE <DTV-SYMBOL-RATE>` = 521700063 :ref:`DTV_SYMBOL_RATE <DTV-SYMBOL-RATE>` = 5217000
48 64
49- :ref:`DTV_INNER_FEC <DTV-INNER-FEC>` = FEC_3_465 :ref:`DTV_INNER_FEC <DTV-INNER-FEC>` = FEC_3_4
50 66
51- :ref:`DTV_TUNE <DTV-TUNE>`67 :ref:`DTV_TUNE <DTV-TUNE>`
52 68
53The code that would that would do the above is show in69The code that would that would do the above is show in
54:ref:`dtv-prop-example`.70:ref:`dtv-prop-example`.
55 71
56.. _dtv-prop-example:
57
58Example: Setting digital TV frontend properties
59===============================================
60
61.. code-block:: c72.. code-block:: c
73 :caption: Example: Setting digital TV frontend properties
74 :name: dtv-prop-example
62 75
63 #include <stdio.h>76 #include <stdio.h>
64 #include <fcntl.h>77 #include <fcntl.h>
@@ -102,17 +115,12 @@ Example: Setting digital TV frontend properties · 37 unmodified lines
102 provides methods for usual operations like program scanning and to115 provides methods for usual operations like program scanning and to
103 read/write channel descriptor files.116 read/write channel descriptor files.
104 117
105
106.. toctree::118.. toctree::
107 :maxdepth: 1119 :maxdepth: 1
108 120
109 dtv-stats
110 dtv-fe-stats
111 dtv-property
112 dtv-properties

7 more lines aren’t shown here.

Documentation/media/uapi/dvb/dvbstb.svg+15−16

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

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

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

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

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

Documentation/media/uapi/dvb/fe-diseqc-reset-overload.rst+7−3

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

Documentation/media/uapi/dvb/fe-diseqc-send-burst.rst+7−32

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

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

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

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

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

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

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

Documentation/media/uapi/dvb/fe-get-event.rst+6−3

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

Documentation/media/uapi/dvb/fe-get-frontend.rst+6−4

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

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

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

Documentation/media/uapi/dvb/fe-get-property.rst+8−4

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

Documentation/media/uapi/dvb/fe-read-ber.rst+6−2

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

Documentation/media/uapi/dvb/fe-read-signal-strength.rst+6−2

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

Documentation/media/uapi/dvb/fe-read-snr.rst+6−2

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

Documentation/media/uapi/dvb/fe-read-status.rst+7−78

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

Documentation/media/uapi/dvb/fe-read-uncorrected-blocks.rst+6−2

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

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

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

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

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

Documentation/media/uapi/dvb/fe-set-tone.rst+6−32

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

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

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

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

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

Documentation/media/uapi/dvb/fe_property_parameters.rst+479−1450

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

Documentation/media/uapi/dvb/frontend-header.rst+4−0

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

Documentation/media/uapi/dvb/frontend-property-terrestrial-systems.rst+1−1

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

Documentation/media/uapi/dvb/frontend.rst+21−18

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

Documentation/media/uapi/dvb/frontend_f_close.rst+9−7

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

Documentation/media/uapi/dvb/frontend_f_open.rst+26−18

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

Documentation/media/uapi/dvb/frontend_h.rst+0−9

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

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

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

Documentation/media/uapi/dvb/headers.rst+21−0

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

Documentation/media/uapi/dvb/intro.rst+53−42

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

Documentation/media/uapi/dvb/legacy_dvb_apis.rst+20−8

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

Documentation/media/uapi/dvb/net-add-if.rst+6−36

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

Documentation/media/uapi/dvb/net-get-if.rst+6−2

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

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

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

Documentation/media/uapi/dvb/net-types.rst+9−0

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

Documentation/media/uapi/dvb/net.rst+8−7

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

Documentation/media/uapi/dvb/net_h.rst+0−9

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

Documentation/media/uapi/dvb/query-dvb-frontend-info.rst+2−2

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

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

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

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

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

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

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

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

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

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

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

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

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

Documentation/media/uapi/dvb/video.rst+8−7

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

Documentation/media/uapi/dvb/video_h.rst+0−9

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

Documentation/media/uapi/gen-errors.rst+16−33

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

Documentation/media/uapi/mediactl/media-controller.rst+3−1

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

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

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

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

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

Documentation/media/uapi/mediactl/media-types.rst+1−1

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

Documentation/media/uapi/rc/rc-sysfs-nodes.rst+5−5

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

Documentation/media/uapi/rc/remote_controllers.rst+3−1

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

Documentation/media/uapi/v4l/colorspaces-defs.rstrenamed from Documentation/media/uapi/v4l/pixfmt-006.rst+3−1

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

Documentation/media/uapi/v4l/colorspaces-details.rstrenamed from Documentation/media/uapi/v4l/pixfmt-007.rst+47−0

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

Documentation/media/uapi/v4l/dev-meta.rst+2−0

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

Documentation/media/uapi/v4l/dev-sliced-vbi.rst+16−7

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

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

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

Documentation/media/uapi/v4l/driver.rst+0−9

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

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

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

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

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

Documentation/media/uapi/v4l/pixfmt-008.rst+0−32

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

Documentation/media/uapi/v4l/pixfmt-compressed.rstrenamed from Documentation/media/uapi/v4l/pixfmt-013.rst+0−0

File renamed without changes.

Documentation/media/uapi/v4l/pixfmt-intro.rstrenamed from Documentation/media/uapi/v4l/pixfmt-004.rst+0−0

File renamed without changes.

Documentation/media/uapi/v4l/pixfmt-inzi.rst+4−3

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

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

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

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

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

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

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

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

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

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

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

Documentation/media/uapi/v4l/pixfmt-packed-hsv.rst+15−15

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

Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst+95−83

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

Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst+26−21

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

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

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

Documentation/media/uapi/v4l/pixfmt-srggb10p.rst+5−9

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

Documentation/media/uapi/v4l/pixfmt-srggb12p.rst+86−0

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

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

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

Documentation/media/uapi/v4l/pixfmt-v4l2-mplane.rstrenamed from Documentation/media/uapi/v4l/pixfmt-003.rst+0−0

File renamed without changes.

Documentation/media/uapi/v4l/pixfmt-v4l2.rstrenamed from Documentation/media/uapi/v4l/pixfmt-002.rst+0−0

File renamed without changes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Documentation/media/uapi/v4l/pixfmt.rst+7−8

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

Documentation/media/uapi/v4l/subdev-formats.rst+10−7

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

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

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

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

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

Documentation/media/uapi/v4l/vidioc-create-bufs.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-cropcap.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-dbg-g-chip-info.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-dbg-g-register.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-dqevent.rst+2−1

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

Documentation/media/uapi/v4l/vidioc-dv-timings-cap.rst+2−1

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

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

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

Documentation/media/uapi/v4l/vidioc-enum-dv-timings.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-enum-fmt.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-enum-frameintervals.rst+4−3

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

Documentation/media/uapi/v4l/vidioc-enum-framesizes.rst+3−1

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

Documentation/media/uapi/v4l/vidioc-enum-freq-bands.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-enumaudio.rst+1−0

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

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

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

Documentation/media/uapi/v4l/vidioc-enuminput.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-enumoutput.rst+1−0

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

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

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

Documentation/media/uapi/v4l/vidioc-expbuf.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-audio.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-audioout.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-crop.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-ctrl.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-dv-timings.rst+3−2

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

Documentation/media/uapi/v4l/vidioc-g-edid.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-enc-index.rst+2−1

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

Documentation/media/uapi/v4l/vidioc-g-ext-ctrls.rst+2−1

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

Documentation/media/uapi/v4l/vidioc-g-fbuf.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-fmt.rst+2−1

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

Documentation/media/uapi/v4l/vidioc-g-frequency.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-input.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-jpegcomp.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-modulator.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-output.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-parm.rst+1−0

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

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

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

Documentation/media/uapi/v4l/vidioc-g-selection.rst+1−4

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

Documentation/media/uapi/v4l/vidioc-g-sliced-vbi-cap.rst+4−3

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

Documentation/media/uapi/v4l/vidioc-g-std.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-g-tuner.rst+9−5

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

Documentation/media/uapi/v4l/vidioc-overlay.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-prepare-buf.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-qbuf.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-query-dv-timings.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-querybuf.rst+1−0

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

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

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

Documentation/media/uapi/v4l/vidioc-queryctrl.rst+3−1

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

Documentation/media/uapi/v4l/vidioc-querystd.rst+1−0

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

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

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

Documentation/media/uapi/v4l/vidioc-s-hw-freq-seek.rst+1−0

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

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

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

Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-interval.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subdev-enum-frame-size.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subdev-enum-mbus-code.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subdev-g-crop.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subdev-g-frame-interval.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subdev-g-selection.rst+1−0

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

Documentation/media/uapi/v4l/vidioc-subscribe-event.rst+3−2

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

Documentation/media/v4l-drivers/au0828-cardlist.rst+34−10

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

Documentation/media/v4l-drivers/bttv-cardlist.rst+678−171

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

Documentation/media/v4l-drivers/cx23885-cardlist.rst+242−62

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

Documentation/media/v4l-drivers/cx88-cardlist.rst+374−95

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

Documentation/media/v4l-drivers/em28xx-cardlist.rst+419−104

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

Documentation/media/v4l-drivers/index.rst+4−1

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

Documentation/media/v4l-drivers/ivtv-cardlist.rst+134−35

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

Documentation/media/v4l-drivers/qcom_camss.rst+156−0

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

Documentation/media/v4l-drivers/qcom_camss_graph.dot+41−0

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

Documentation/media/v4l-drivers/saa7134-cardlist.rst+798−201

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

Documentation/media/v4l-drivers/saa7164-cardlist.rst+66−18

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

Documentation/media/v4l-drivers/tm6000-cardlist.rst+78−21

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

Documentation/media/v4l-drivers/usbvision-cardlist.rst+278−71

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

Documentation/media/v4l-drivers/vivid.rst+1−0

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

Documentation/memory-barriers.txt+32−110

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

Documentation/networking/00-INDEX+0−2

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

Documentation/networking/batman-adv.rst+220−0

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

Documentation/networking/batman-adv.txt+0−215

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

Documentation/networking/dpaa.txt+67−1

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

Documentation/networking/filter.txt+112−22

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

Documentation/networking/hinic.txt+125−0

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

Documentation/networking/ieee802154.txt+8−8

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

Documentation/networking/index.rst+1−0

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

Documentation/networking/ip-sysctl.txt+31−16

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

Documentation/networking/msg_zerocopy.rst+257−0

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

Documentation/networking/netdev-FAQ.txt+8−0

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

Documentation/networking/netvsc.txt+75−0

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

Documentation/networking/nf_conntrack-sysctl.txt+0−11

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

Documentation/networking/rmnet.txt+82−0

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

Documentation/networking/rxrpc.txt+56−1

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

Documentation/networking/strparser.txt+140−69

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

Documentation/networking/switchdev.txt+36−36

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

Documentation/nvmem/nvmem.txt+1−1

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

Documentation/power/states.txt+0−125

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

Documentation/pps/pps.txt+23−21

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

Documentation/printk-formats.txt+21−8

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

Documentation/process/applying-patches.rst+1−42

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

Documentation/process/changes.rst+3−13

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

Documentation/process/stable-kernel-rules.rst+2−2

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

Documentation/process/submitting-patches.rst+1−1

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

Documentation/rbtree.txt+33−0

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

Documentation/security/keys/core.rst+3−13

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

Documentation/security/keys/request-key.rst+1−1

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

Documentation/security/keys/trusted-encrypted.rst+1−1

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

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

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

Documentation/sphinx/kerneldoc.py+3−5

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

Documentation/sphinx/requirements.txt+3−0

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

Documentation/static-keys.txt+20−0

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

Documentation/sysctl/kernel.txt+13−1

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

Documentation/sysctl/net.txt+36−11

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

Documentation/sysctl/vm.txt+3−1

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

Documentation/trace/stm.txt+12−1

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

Documentation/translations/ko_KR/memory-barriers.txt+30−107

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

Documentation/translations/zh_CN/HOWTO+0−2

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

Documentation/userspace-api/seccomp_filter.rst+50−2

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

Documentation/virtual/kvm/devices/arm-vgic.txt+5−0

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

Documentation/virtual/kvm/devices/vm.txt+13−1

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

Documentation/vm/hmm.txt+384−0

This diff is large: its 385 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+383−102

This diff is large: its 1147 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-n950-n9.dtsi+14−0

This diff is large: its 21 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+15−2

This diff is large: its 65 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+5−1

This diff is large: its 41 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+6−11

This diff is large: its 72 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/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/board-generic.c+1−0

This diff is large: its 8 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/dma.c+5−143

This diff is large: its 176 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/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−17

This diff is large: its 48 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/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+5−16

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

arch/mips/Makefile+27−4

This diff is large: its 66 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/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/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+5−2

This diff is large: its 28 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/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/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.h+28−0

This diff is large: its 35 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+16−14

This diff is large: its 88 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/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+104−59

This diff is large: its 390 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/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+3−5

This diff is large: its 26 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+7−11

This diff is large: its 92 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+22−23

This diff is large: its 169 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+18−24

This diff is large: its 152 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+2−7

This diff is large: its 27 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−46

This diff is large: its 202 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+146−82

This diff is large: its 325 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+3−0

This diff is large: its 10 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+39−1

This diff is large: its 68 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+3−3

This diff is large: its 27 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+24−0

This diff is large: its 56 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/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/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/etrap_64.S+22−4

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

arch/sparc/kernel/head_64.S+15−3

This diff is large: its 48 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+6−0

This diff is large: its 20 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+47−7

This diff is large: its 84 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/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/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+2−2

This diff is large: its 21 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+35−1

This diff is large: its 64 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_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/futex.h+5−22

This diff is large: its 44 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.

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+16−13

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

block/bfq-wf2q.c+56−35

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

block/bio-integrity.c+12−14

This diff is large: its 96 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+67−8

This diff is large: its 145 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+26−10

This diff is large: its 73 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+10−102

This diff is large: its 196 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/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+464−94

This diff is large: its 777 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/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/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.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+1−1

This diff is large: its 9 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/sw_sync.c+9−1

This diff is large: its 18 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/Kconfig+6−1

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

drivers/gpu/drm/Makefile+3−3

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

drivers/gpu/drm/amd/amdgpu/Makefile+0−2

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

drivers/gpu/drm/amd/amdgpu/amdgpu.h+38−44

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

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v7.c+2−0

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

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v8.c+2−1

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

drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c+85−45

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

drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c+2−4

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

This diff is larger than a page shows: the files after these aren’t listed. Clone the repository to see all of it.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t