Commit graph

932,869 commits

Author SHA1 Message Date
Olof Johansson
4737365aeb Versatile Express defconfig updates:
This activates the new PL11x DRM driver with the
 Versatile Express family of reference designs.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJb/5b8AAoJEEEQszewGV1zKWwQAIeDPSeLGsDijpiXJclzvFkT
 i54J4qDP0TDRF0DjMuZ517+cV6yUpACxvnxB6dnlHZLnOv5O1vebZePwdqyA+0lo
 DwAmciPgWorfQb0Zwc8roHW1xrInnZiVa5cqNOmeVBjpH9ncsBHgDM38jOXLVaHf
 zN2+8XhDnEJ10N81ZC0vnfPDmNymQRv2BFCGAv0KMXuF5ApWGu8ots7N4znm7D+q
 2SgB1LU1qR6xZHkUr675gGrBrjXpBq2T1Fbm9Ir+k9bgzy/LsL0IQ6c7CrzlSj8I
 7IVOGzh7F2X47CimZwvuh5mBKHqQWbC/697VTkSEEy/31Dwv0IWkgdaThjLYgORV
 E8b0/XbBRT3zdYEIYrXX6n0E2YMtc3Zw3hRrUpoOi+0NcBajsFVX4by9r8lv/yxQ
 7OHjxmDEzBGo0jxOm/mBAgwalNW8j3vkKtZfSXOPM1MILyiPcTlFyVech/7lA0xd
 2ZeXhiZHgx49tuCoUK2UdFGHRwoirk3C1XumVoM/zb/C4iB1a4ibket4ZnD4MTPj
 oy8c2cAXTxVQDmoI9g6neZgZ4oxY6nkGxsHcK0rG/xlJaiYzloMrz/atsxEcExZn
 ywgkf4HcAMudhlVdgf71vByc8dH7bakQgER8tKW/j8fdsMRpnj6MAFVj2FM07fsN
 CJqENDsklqH1XYO23KL3
 =3sxh
 -----END PGP SIGNATURE-----

Merge tag 'vexpress-defconfig-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/defconfig

Versatile Express defconfig updates:
This activates the new PL11x DRM driver with the
Versatile Express family of reference designs.

* tag 'vexpress-defconfig-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: defconfig: Enable the PL111 DRM driver on vexpress
  ARM: defconfig: Update the vexpress defconfig

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:44:50 -08:00
Lubomir Rintel
e47feed91a ARM: mmp: add an instance of pxa-usb-phy to ttc_dkb and aspenite
This will replace the *_pdata.phy_{de,}init()

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:40:32 -08:00
Lubomir Rintel
a225daf72e ARM: mmp: add a pxa-usb-phy device
This is to replace the USB PHY initialization code (pxa_usb_phy_init(),
pxa_usb_phy_deinit()) with a proper PHY driver.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:40:22 -08:00
Lubomir Rintel
f36797ee43 ARM: mmp/mmp2: dt: enable the clock
The device-tree booted MMP2 needs to enable the timer clock, otherwise
it would stop ticking when the boot finishes.

It can also use the clock rate from the clk, the non-DT boards need to
keep using the hardcoded rates.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:40:16 -08:00
Lubomir Rintel
e78ebdcb6e ARM: mmp2: initialize clocks before the timer
The timer shall enable its clock.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:40:01 -08:00
Olof Johansson
7f17e39003 SoCFPGA updates for v5.0
- Split Kconfig options for debug UART on Cyclone5
 - Remove unused functions from socfpga platform code
 - Turn on ARM and PL310 errata for SOCFPGA ARMv7 platform
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAlv+tnEUHGRpbmd1eWVu
 QGtlcm5lbC5vcmcACgkQGZQEC4GjKPT1WRAAndVS4YV1RWaGFTF5ixfzBr4tPxky
 iydS0xDoZQ/kaF5KojFXaJIMImntzJEn+f7ZiT41FybDr30T7Yu1ZCak8TnUACcw
 MZ04Jrns8Qrt/V8+uL68YqUuBgnPHiRcNxOKR3KAHgwcIAXMSswGJ469VdBOkk8l
 1er/G+YKQdSa1jfTC2XatIViwcTNGYduqO+sOSaTZRCb/+FziODDFiJS3yNytjWt
 beyMAvCb2szrWi5KM6uqrjayPK3DpThjhEh7bTBttROTLxkgIx/elG8V/0FKKPhT
 J5XCQPI+Afu2JCHnGTonHNfUaXGxVpRuqXzrAuscbPhmJWZ6BdOTOZIM/uY3sopP
 plTP9Iod2gGrS9r6ZD1XLtbt2CnH+mJWq7OrjOL3bC7U1D8x4gJaIxq1rYao/Pnr
 y/xN5GlN2Dc0kmtWwkPPMJUiY0bokHLnaqbJ86Zu5/14nohbHlYeUueEnPRXcVXj
 flSbRjyMJacd8VMdgoLsBF1xwGzrTWVuBaQWx+33I7UlNBec/T/cB1YP2KLx2bhP
 Q3JBkDjIHHVItd4/brZSDsRqhWvH0w+IO/H6yAOpKQf3s66s8njYu9z2itDBFaMz
 w1yWlz+WYtICsdRm4gz1+fS/1JVK21LZ0VivxMrAuFQRxylOQr1tkMG2k3Jxisce
 89sdTo6JPahOAQc=
 =0ypv
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_updates_for_v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/soc

SoCFPGA updates for v5.0
- Split Kconfig options for debug UART on Cyclone5
- Remove unused functions from socfpga platform code
- Turn on ARM and PL310 errata for SOCFPGA ARMv7 platform

* tag 'socfpga_updates_for_v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  ARM: socfpga: Turn on ARM errata for L2 cache
  ARM: socfpga: Clean unused functions
  ARM: debug: enable UART1 for socfpga Cyclone5

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:39:13 -08:00
Olof Johansson
1e8518aa65 Powerdomain support for rk3066 and rk3188.
-----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAlv2loEQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgcJEB/9Hdi0+ImM5ZBRBCS5qVxlBp3nO3YcZb/oc
 hhxHcg9j6YORAbND077Ed+C14F5R9v/FlC0cV+bIR9CMgefwMZhgGJKWEL/me+PS
 /dGuFRylKbU45w/WBJ5l00dbn/bTIIgVltOoZB0OWZsjwEDH1SvxnsZYiKQuxmcP
 px54QeQmZR7R4DDZSozsfdsciIJTvLM95duM3XyGNDUZ7ruROnmzBIeaF0wctEiI
 evDT4LUrjtKPK/sGwfXYCczU5DElUaQlAHDbBhYdrdDUWzWv2EyW9wkpN2O9Q0HF
 WF8wKDykap938GiwPV4lZhrf4DXJRgIGa4R4B396h9yWg+EvhRFa
 =OXIv
 -----END PGP SIGNATURE-----

Merge tag 'v4.21-rockchip-drivers-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/drivers

Powerdomain support for rk3066 and rk3188.

* tag 'v4.21-rockchip-drivers-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  soc: rockchip: power-domain: add rk3066 powerdomains
  soc: rockchip: power-domain: add rk3188 powerdomains
  dt-bindings: add compatibles for rk3066/rk3188 power controllers
  dt-bindings: add power-domain header for RK3066 SoCs
  dt-bindings: add power-domain header for RK3188 SoCs

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:36:07 -08:00
Rob Herring
8ef86955fe ARM: dts: aspeed: add missing memory unit-address
The base aspeed-g5.dtsi already defines a '/memory@80000000' node, so
'/memory' in the board files create a duplicate node. We're probably
getting lucky that the bootloader fixes up the memory node that the
kernel ends up using. Add the unit-address so it's merged with the base
node.

Found with DT json-schema checks.

Cc: Joel Stanley <joel@jms.id.au>
Cc: Andrew Jeffery <andrew@aj.id.au>
Cc: devicetree@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-aspeed@lists.ozlabs.org
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:20:42 -08:00
Paul Burton
6584297b78
MAINTAINERS: Update linux-mips mailing list address
The linux-mips.org infrastructure has been unreliable recently & nobody
with sufficient access to fix it is around to do so. As a result we're
moving away from it, and part of this is migrating our mailing list to
kernel.org.

Replace all instances of linux-mips@linux-mips.org in MAINTAINERS with
the shiny new linux-mips@vger.kernel.org address.

The new list is now being archived on kernel.org at
https://lore.kernel.org/linux-mips/ which also holds the history of the
old linux-mips.org list.

Signed-off-by: Paul Burton <paul.burton@mips.com>
Cc: linux-mips@vger.kernel.org
Cc: linux-mips@linux-mips.org
2018-11-30 15:19:36 -08:00
Rob Herring
7f4b001b7f ARM: dts: realview-pbx: Fix duplicate regulator nodes
There's a bug in dtc in checking for duplicate node names when there's
another section (e.g. "/ { };"). In this case, skeleton.dtsi provides
another section. Upon removal of skeleton.dtsi, the dtb fails to build
due to a duplicate node 'fixedregulator@0'. As both nodes were pretty
much the same 3.3V fixed regulator, it hasn't really mattered. Fix this
by renaming the nodes to something unique. In the process, drop the
unit-address which shouldn't be present wtihout reg property.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:18:47 -08:00
Olof Johansson
f6332990f6 arm64: Amlogic DT updates for v4.21
Some highlights:
 - new boards: Phicomm N1 (S905D), Libretech S805-AC
 - fixes for pinmux pad bias, GPIO line names
 - AXG: enable SCPI, add secure monitor
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAlwATzUACgkQWTcYmtP7
 xmXNnw/5AU72YPDILN2tLywGYfBc/jlRgSVUo4411oGU5muxfNRYaOIHtLHhBWpV
 xbq4+gQQMxxXdflhYDJbuVmUQUYkuZMW0wePPEn0a/ZV9D/mPD559vl1erCJp0FL
 HuJH+EefFWYMzp2gT8BKDvOrYrEz499C2Xo2bqun21iCmDz649ypI+ODd5ojWWID
 eeatpq7VeRoKzrZrDNTGKbqBsLtRoSshBaYYbrw2iXRTA+AsD/sD7Tg6eus47m3p
 AmUVsUdJE/Czk/dzJoOwCKiWKEVk1FvssvzwjXFtYUbWQCwf6aWPsqDxLrAsKw88
 KzQ126Qc/3sFmtU++rOh2vI0GvyXtgQ81cPc3Eup+1by4tmxqMFIjVE92oWXecYd
 qrvyTyns6gMedHAgIKtvQFEPcaYj204b+aaDaZIA2qD/3b24BjcFwADSuxtl66to
 q8B6Ldvw7wr+C8LqO4eIwy3cS0YAeEz15SMGx5zMVAaQseNcqFwJW/eS/5Cgg4OH
 Ooic3qmkMR6oDGNJ0ied+J/98UtYGseR05EpGzAe1tRRuPPK/I4dQhnVIlz/d3Dq
 6ajkRTMWNH9rn0FTNeOX8GeUTLnS+hdmJ/JDxtgsk5Jy9nkv3+JlLY62F8sA5uu6
 0nX0GE6bxkqglx3LT1/qvhD4BN+zg7uA0QYVJzWyOT5VNHMBwxc=
 =dZPc
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/dt

arm64: Amlogic DT updates for v4.21
Some highlights:
- new boards: Phicomm N1 (S905D), Libretech S805-AC
- fixes for pinmux pad bias, GPIO line names
- AXG: enable SCPI, add secure monitor

* tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (26 commits)
  arm64: dts: meson-gx: Add Internal Clock Measurer node
  arm64: dts: amlogic: Add all CPUs in cooling maps
  arm64: dts: meson: add libretech aml-s805x-ac board
  dt-bindings: arm: amlogic: add libretech aml-s805x-ac bindings
  dt-bindings: arm: amlogic: Add Phicomm N1
  dt-bindings: Add vendor prefix for PHICOMM Co., Ltd.
  arm64: dts: meson-gxl: add support for phicomm n1
  arm64: dts: meson: consistently disable pin bias
  arm64: dts: meson: disable pad bias for mmc pinmuxes
  arm64: dts: meson: remove extra subnode in mmc clk_gate pinmux
  arm64: dts: meson: s400: add bcm bluetooth device
  arm64: dts: meson: p230: disable advertisement EEE for GbE.
  arm64: dts: meson-axg: enable SCPI
  Documentation: bindings: Add missing Amlogic SCPI sensor bindings
  arm64: dts: meson-axg: correct sram shared mem unit-address
  arm64: dts: meson-axg: fix mailbox address
  arm64: dts: meson-gx: Add hdmi_5v regulator as hdmi tx supply
  arm64: dts: meson-axg: add secure monitor
  arm64: dts: meson-axg: s400: add cts-rts to the bluetooth uart
  arm64: dts: meson-gxl-khadas-vim: fix GPIO lines names
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:18:30 -08:00
Olof Johansson
4c4332761e Amlogic 32-bit DT updates for v4.21
- support more timers on meson8
 - add the stdout-path property on several boards
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAlwATkAACgkQWTcYmtP7
 xmUJ5w/+KMrv+9D9uqdRRBjMxyGfYURCsY+sA/iT1TPjBruVCl9Js6uQ77h8NZ5W
 oCkEmrL2t8oSK4q8BqR7F9ayzloM5G3i7ruIzgVQE0pHWdVxvJa+zlsrnCI9/Gsv
 Swy9zpXzHIcRZNiMewBYwvB/cO/qYmNxjnWi3NintE6NSv0Syl0q6MMoTlUSdyoE
 MFednj/OcQyt8csBeJljVhZ6P7VLaag2WHIe7JqTa53qUU/qRGA18g8qb7UnHmUC
 BWJaFzzfXG8Tr9nP1ddo3WTeHskgzWiuObnXw64ep2wMcVU+HsbPGiMyWLXzpjrM
 8IEOFGTuxNeY7M9Rs7jhyFWAqP9Ls0USiiOOuHiyFENumVc3WCVXTl7toTXbW1qc
 kVyE4BbdAIwd2Zbwr6gimr2Q0Gzz2oHK09+gBGrAvgZvt+Kwf7QCOMoGlokAVkMX
 h+wJyqC+2PABV/Desl3ocjMQtuLRfIL6/NyFfcWqSXLMLhXPqMfNQ+k3p/ZcgH9d
 9Q0zre83NeBCgNk7QejZW85XHfkyekqkPGnWJHQkOO5XHJmaaRTmUM7wiV6l6emE
 3JBil39sHkPsiInYd6yvbZs4g5InOXvTDf43fHBeWRMxBBpxpGf57HYa9ib7r6MJ
 asnfxjBwdYcwzWg+Gb7Ri0Jmi4xUxROrhuiMKLfbDCLmt+yIPBE=
 =9yK+
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/dt

Amlogic 32-bit DT updates for v4.21
- support more timers on meson8
- add the stdout-path property on several boards

* tag 'amlogic-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic:
  ARM: dts: meson: add the clock inputs for the Meson timer
  ARM: dts: meson: add the TIMER B/C/D interrupts
  ARM: dts: meson: consistently disable pin bias
  ARM: dts: meson8b: mxq: add the /chosen/stdout-path property
  ARM: dts: meson8: minix-neo-x8: add the /chosen/stdout-path property
  ARM: dts: meson6: atv1200: add the /chosen/stdout-path property
  dt-bindings: timer: meson6_timer: document the clock inputs
  dt-bindings: timer: meson6_timer: document all interrupts

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:18:03 -08:00
Olof Johansson
e14a6df960 Device tree changes for omaps for v4.21 merge window
These changes mostly configure pinctrl for am437x-gp-evm. There is
 also non-critical fix for a comment for Clang, and we enable earlycon
 for am3517-evm.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAlwAQlARHHRvbnlAYXRv
 bWlkZS5jb20ACgkQG9Q+yVyrpXPKSw//V+EavS1zpABU2bEHH/4b+SktvPFOf78u
 o1kwMYHnpabWyRyhM3tz/vaUvoEwVWh1CA2G1jyBQl5Go8LhgyHsx6tRuI0c0oqz
 atoDpexURkE/3NMyv2AewyWKzpW3kEfCJ/Udt1+gvByzb2AISpxjcv+nD1Cywv5w
 hkGtRBh5bT9eloGN+2sZspKRcc2bFUo9wWBc/TJ+m5t1uodrt3xNaPXJDenE2Qa4
 XNHzQPG4ektb6Pd8yXXPQLap3Bme5oXv0yp/UTus8bPWaQBVKNroYiXiyKeGTJS6
 mWhpmquJmFjojLTVU7kbgOKcH0BmWHizhr/I3Lpq9aRjR/mDyMPQGt4eM3XhITv8
 6x8ZAu+dLUmfSGAcVK4Tudw2LTea04u43DWTPmvx2ARXzyIC5658rEkpot8LMBhI
 FMOdHT8pqbCP7PQ0YwLYzshckqhl7Mg7dIaJED10S71s7r0BA7h0lHntfh6jiPDG
 SNGcgjf0glyye4IG65qArOsCVZkbUpXX7kQC+BlZ2W8xfg5k+8fPjcrA1jFP1C1L
 ASpm2fdNHjLFaV3Kfp1wezbC4zmkdtCyYqJ5tE/S0TndNMRatFWIhTtF9JU9s9hK
 FzmqBPcdyrsgDh01RBkEfbPpjygTV3ZxFzQAqnaciuGhxUsNyahMzjGyN/1z1UCu
 qt6px/yF8FE=
 =/+sU
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v4.21/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt

Device tree changes for omaps for v4.21 merge window

These changes mostly configure pinctrl for am437x-gp-evm. There is
also non-critical fix for a comment for Clang, and we enable earlycon
for am3517-evm.

* tag 'omap-for-v4.21/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  ARM: dts: am437x-gp-evm: Add sleep state for beeper pins
  ARM: dts: am437x-gp-evm: Add pinmux for gpio0 wake
  ARM: dts: am437x-gp-evm: Add uart0 pinctrl default and sleep states
  ARM: dts: am437x-gp-evm: Add pinctrl for debugss pins
  ARM: dts: am437x-gp-evm: Add pinctrl for unused_pins
  ARM: dts: am437x-gp-evm: Add state for ddr3 vtt toggle pin
  ARM: dts: am3517-evm: Enable earlycon stdout path
  ARM: dts: omap3-gta04: Fix comment block

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:17:33 -08:00
Olof Johansson
9cf0418ee0 Versatile Express DTS update for DRM:
This updates the Versatile Express family DTS files to
 contain the correct and detailed information required
 for the PL11x DRM driver to work properly.
 -----BEGIN PGP SIGNATURE-----
 
 iQIcBAABAgAGBQJb/5ZcAAoJEEEQszewGV1zXo0QAMzrWDyBqNxgPR5XwNJBzgu1
 x68wAA9N3jLXvHm0KG+J5OP9830m3uCLefhH4/dZN5XV4EjMME9n1Uv+uz6/8/Uu
 fGBMFR1AwIH1qbN1bhG6wcC495vsUp+k8Q8zkpTZ4iT18pv0FMLgTugpOUIIbhxP
 1oUP4xi/c97190QRy1OS7MDTyXElhrxoVtrjmggE9kWgkHPP76FX9ZAQE5EMTDtU
 +O6JrpWuNjpusgOaTYwgNeKzOloAcFbNcaQOGLjHQmGoFRgRuK1jP+ZpULyFaJKo
 5U4D6haYKJqcVhzlMclZa2rh3gkH8M8YUGhDNDABKiTdy1R+gkn44GWKBT9+uKpl
 ve0Jd6ca3DhBe/XQlCADUYGmGy6PUJY9DpWCNxCZn/BBsSOLMiom51jndsnk8Y5b
 gszQnkDPIv6tKxuUIxLS7Q89Jf3TIlVwiDbVHlzvYjiAqJQ9fsRa/BrGM5FknMl6
 YAg8UPAqveUt26RL2t4VEpVY9FSJtCFsmvD202dbmbkJYHpihIN5Nse+msxAn5Ln
 GbCZsA5SFSUapXYDSPQmpLiu2fGS8ojVUzadAKvoG1ktIo1h1SMbvBpHjeERIKaM
 Zw1ErQ5IMyAhtXq64dqIEIgesb7zYiZ+TC89huJr96CRkShfu2bLy0oaqa09GUvk
 JXPF+OrQmUqmq/5P385H
 =4oHX
 -----END PGP SIGNATURE-----

Merge tag 'vexpress-drm-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/dt

Versatile Express DTS update for DRM:
This updates the Versatile Express family DTS files to
contain the correct and detailed information required
for the PL11x DRM driver to work properly.

* tag 'vexpress-drm-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
  ARM: dts: Modernize the Vexpress PL111 integration

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:16:42 -08:00
Pierre-Yves MORDRET
4e7bca6fc0 i2c: i2c-stm32f7: add PM Runtime support
Use PM Runtime API to enable/disable clock

Signed-off-by: Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2018-12-01 00:14:45 +01:00
Lubomir Rintel
d3e9d2ce77 ARM: dts: mmp2: Add SSP controllers
Despite Marvel keeps their base addresses secret there's a good chance
they're actually correct.

SSP1 and SSP3 bases were taken from OLPC 1.75: OpenFirmware and kernel
respectively. SSP2 and SSP4 addresses are from James Cameron who actually
has a copy of the data sheet.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:13:33 -08:00
Lubomir Rintel
3f3ad8ab32 ARM: dts: mmp2: add USB OTG host controller
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:13:27 -08:00
Lubomir Rintel
df606f41ab ARM: dts: mmp2: add OTG PHY
The USB OTG PHY chip. To be used by the OTG controller.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:13:20 -08:00
Lubomir Rintel
8a22b194ce ARM: dts: mmp2: add more TWSI controllers
I've gotten the base addresses, clocks and interrupts from an rusty and old
out-of-tree driver. I haven't actually checked against the datasheet, since
that one is reserved for the Marvell inner circle.

Tested with an accelerometer on TWSI6 on an OLPC XO 1.75 machine.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:13:14 -08:00
Lubomir Rintel
1147e05ac9 ARM: dts: mmp2: fix TWSI2
Marvell keeps their MMP2 datasheet secret, but there are good clues
that TWSI2 is not on 0xd4025000 on that platform, not does it use
IRQ 58. In fact, the IRQ 58 on MMP2 seems to be a signal processor:

   arch/arm/mach-mmp/irqs.h:#define IRQ_MMP2_MSP  58

I'm taking a somewhat educated guess that is probably a copy & paste
error from PXA168 or PXA910 and that the real controller in fact hides
at address 0xd4031000 and uses an interrupt line multiplexed via IRQ 17.

I'm also copying some properties from TWSI1 that were missing or
incorrect.

Tested on a OLPC XO 1.75 machine, where the RTC is on TWSI2.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Tested-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:13:04 -08:00
Lubomir Rintel
03f64e17f5 ARM: dts: mmp2: add MMC controllers
There's apparently four of them on a MMP2.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:12:57 -08:00
Lubomir Rintel
1c22b9c10a ARM: dts: mmp2: add clock to the timer
The timer needs the timer clock to be enabled, otherwise it stops
ticking.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:12:50 -08:00
Lubomir Rintel
5b3edb56bc ARM: dts: mmp2: give gpio node a name
This will be useful for boards that actually use GPIO pins.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:12:38 -08:00
Lubomir Rintel
400583983f ARM: dts: mmp2: fix the gpio interrupt cell number
gpio-pxa uses two cell to encode the interrupt source: the pin number
and the trigger type. Adjust the device node accordingly.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:11:41 -08:00
Lubomir Rintel
ca40d2bd81 dt-bindings: mrvl,mmp-timer: add clock
The timer needs the timer clock to be enabled, otherwise it stops
ticking.

Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Reviewed-by: Rob Herring <robh@kernel.org>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:10:36 -08:00
Olof Johansson
4abc79424f SoCFPGA DTS updates for v5.0
- Use SPDX license identifier for all SoCFPGA DTS files.
 - Remove dma-mask property as it has been deprecated.
 - Use tabs in DTS files.
 - Use the specific "altr,stratix10-rst-mgr" property for the Stratix10
   reset manager.
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAlv+teoUHGRpbmd1eWVu
 QGtlcm5lbC5vcmcACgkQGZQEC4GjKPS9Sg//b6N0rtVZlkVaOVtTDR+X/y3/GKyx
 ZCbNaCygR5Iy17nz2XU/h9R/QEPDCWllmJyykvJ4jorwHLeebI2+CDN6aYRSZrA5
 dKw7OFsWntRYAE9Z2v23fATPK0Gc94GopcE0p53YBMS03atKdf06ORDdYPTWs+bi
 4TmP40NcQzTvcNDuOrnkE1Kg1QhH6hakt5u5d2zt4JK7oCkLsMH9uOF4XuoqXDfc
 1RatsAaSbA5JRAB09y+uvPrFrDeA3Guzx9FruBhR4EdSgDJzVnKLZM8/7z+Zmq52
 lwIcpaWBtSgcvB7BgfxgCEsfDbTIlrupWuWGubIShD6oBBdXqk8m5t2E0wqTbyuq
 LJ72OBpUIo2KvMb2Q2cBDW5nyTGkiimf7DUjcBRLmPtAbpubrovt8jJGyJqzzbvn
 p6Rf2AfYm43WiyeNCJGk4nnzO+gGS6T/RTvDIjMhLLRJtiftuj3JRlcJ7Ihx2deO
 Cwu84mbyLQjT9VGOuLdtXAy8fDsZfpkJ9DVavWq8FPbZCdKhuk3vSyrxSVx/QPHt
 uWeauXbyaL+aTOx6pH7opdl84nOwb8zVrldunmhzv0UmrrylttHGS0Dr1L2JiPip
 bOBaPmHKDUFNjgL67PLQ4QCXIUe+4YSFUqRwiyF6e47TR4yVj5cDsUbHI/ttPiR0
 cvfeRb6etth+ri0=
 =IDQS
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_dts_updates_for_v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt

SoCFPGA DTS updates for v5.0
- Use SPDX license identifier for all SoCFPGA DTS files.
- Remove dma-mask property as it has been deprecated.
- Use tabs in DTS files.
- Use the specific "altr,stratix10-rst-mgr" property for the Stratix10
  reset manager.

* tag 'socfpga_dts_updates_for_v5.0' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  arm64: dts: stratix10: use "altr,stratix10-rst-mgr" binding
  ARM: dts: socfpga: use tabs for indentation
  arm: dts: socfpga: remove dma-mask property
  arm: dts: socfpga*.dts*: use SPDX-License-Identifier

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:09:13 -08:00
Olof Johansson
e3d3781393 Renesas ARM64 Based SoC DT Updates for v4.21
* H3 (r8a7795) SoC:
   - Remove unneeded sound #address/size-cells
 
 * M3-W (r8a7796) SoC:
   - Describe CMT (Compare Match Timer) devices in DT
   - Describe I2C-DVFS device node in DT
 
 * M3-N (r8a77965) SoC:
   - Describe CAN, CANFD and LVDS in DT
 
 * R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs:
   - Describe CPU topology, capacity and cooling maps in DT
   - Add SSIU support to R-Car audio
 
 * R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) SoCs:
   - Extend register range of HSUSB device to match documentation
 
 * R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) based
   Salvator-X, Salvator-XS and ULCB boards:
   - Switch eMMC bus to 1V8
 
 * R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) based
   Salvator-X and Salvator-XS boards:
   - Describe USB3.0 xHCI host and prerepheral devices as companions
 
 * R-Car E3 (r8a77990) SoC:
   - Add thermal support
   - Add support for interupt controller for external devices (INTC-EX)
   - Describe all SCIF devices and SYS-DMA for I2C and MSIOF devices
 
 * R-Car E3 (r8a77990) based Ebisu board:
   - Enable SDHI, CAN, CANFD, audio and USB3.0
   - Describe serial console pins
 
 * R-Car E3 (r8a77990) based Ebisu and
   R-Car D3 (r8a77995) based Draak board:
   - Enable USB2.0 peripheral device
 
 * R-Car M3-N (r8a77965), E3 (r8a77990) and V3H (r8a77980) SoCs:
   - Connect EtherAVB to IPMMU
 
 * R-Car V3M (r8a77970) and V3H (r8a77980) SoCs:
   - Describe TMU (timer unit), PWM timer controller and MSIOF devides in DT
   - Add thermal support
 
 * RZ/G2M (r8a774a1) SoC:
   - Use clock and power index macros
   - Describe VIN, CSI-2 and CAN devices in DT
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAlv70EIACgkQ189kaWo3
 T77EBg/8C7ix/yEsUoZkN9jQHvWUQnJBBwY/YExhMf6RqBGNz8k3Q/inGfxV/5w6
 +V+b/Xt7RrP+VOgP6PSig4QABKwjBpOhBPTg3So1w7Ne59uHMCofEYqg6HpYwT2K
 nfmp7gSN5C+iiwvwSZ8CypLZ5SKunqpQW53a7oeGlJauypcTJGQuVRRF/QGOAnbN
 jcIjvaSTVNo+CAuzFd11XZ5F4FEqZ4bEMR+F/Me6fvpOVH4W0nkKNYKdEFAJ2r6e
 ybAOyRSbE6aBhpXzPH0HT6wZMII6FtTQSPDhJ2xpt7Oe7Ou3GuQ+BRcRiS2nbvPQ
 xyJzobWAS5b7cNTr7vrruh8wKuOmu6v/SVtSCJbsLFFZibbFzPlg0l3tdlxI2oso
 UKwJtXnSVXDMXjp2RChfjpsqrT2sY3w/R9KVzKXsNwPN52saY2lnOw3iWOROGEC3
 smivtt46QRBygB8Q5GsjhLyPlWKj9Kfbt3+pWCRlbJ0sDPlJA9vkkkpKMIbp5U1q
 IiOFp0mSmM52MDlwSGZ7zPDpZeawxfeQnT/yEZ7cFdsHOBaruszyN8Rl9lTMf8Ph
 7i59aYDillhoBAL195Vapgmf1rmlFPQckUYw9+K0rmaWQZCSBZd87xLJ2StNPRcZ
 GdZIQ7tNulgVHetyPYPWfkeLjrpCC255Z5CQCChl+d8uGEL7K88=
 =DUcP
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm64-dt-for-v4.21' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Renesas ARM64 Based SoC DT Updates for v4.21

* H3 (r8a7795) SoC:
  - Remove unneeded sound #address/size-cells

* M3-W (r8a7796) SoC:
  - Describe CMT (Compare Match Timer) devices in DT
  - Describe I2C-DVFS device node in DT

* M3-N (r8a77965) SoC:
  - Describe CAN, CANFD and LVDS in DT

* R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs:
  - Describe CPU topology, capacity and cooling maps in DT
  - Add SSIU support to R-Car audio

* R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) SoCs:
  - Extend register range of HSUSB device to match documentation

* R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) based
  Salvator-X, Salvator-XS and ULCB boards:
  - Switch eMMC bus to 1V8

* R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) based
  Salvator-X and Salvator-XS boards:
  - Describe USB3.0 xHCI host and prerepheral devices as companions

* R-Car E3 (r8a77990) SoC:
  - Add thermal support
  - Add support for interupt controller for external devices (INTC-EX)
  - Describe all SCIF devices and SYS-DMA for I2C and MSIOF devices

* R-Car E3 (r8a77990) based Ebisu board:
  - Enable SDHI, CAN, CANFD, audio and USB3.0
  - Describe serial console pins

* R-Car E3 (r8a77990) based Ebisu and
  R-Car D3 (r8a77995) based Draak board:
  - Enable USB2.0 peripheral device

* R-Car M3-N (r8a77965), E3 (r8a77990) and V3H (r8a77980) SoCs:
  - Connect EtherAVB to IPMMU

* R-Car V3M (r8a77970) and V3H (r8a77980) SoCs:
  - Describe TMU (timer unit), PWM timer controller and MSIOF devides in DT
  - Add thermal support

* RZ/G2M (r8a774a1) SoC:
  - Use clock and power index macros
  - Describe VIN, CSI-2 and CAN devices in DT

* tag 'renesas-arm64-dt-for-v4.21' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (40 commits)
  arm64: dts: renesas: Add all CPUs in cooling maps
  arm64: dts: renesas: r8a77990: add thermal device support
  arm64: dts: renesas: r8a77990: Enable I2C DMA
  arm64: dts: renesas: r8a7796: Add CMT device nodes
  arm64: dts: renesas: r8a7796: add SSIU support for sound
  arm64: dts: renesas: r8a77990: Add I2C-DVFS device node
  arm64: dts: renesas: r8a77990: ebisu: Add and enable CAN,FD device nodes
  arm64: dts: renesas: r8a77965: Add CAN and CANFD controller nodes
  arm64: dts: renesas: r8a77990: ebisu: Add and enable PCIe device node
  arm64: dts: renesas: Add CPU capacity-dmips-mhz
  arm64: dts: renesas: Add CPU topology on R-Car Gen3 SoCs
  arm64: dts: renesas: r8a774a1: Replace clock magic numbers
  arm64: dts: renesas: r8a774a1: Replace power magic numbers
  arm64: dts: renesas: r8a7795: add SSIU support for sound
  arm64: dts: renesas: r8a77990: Fix VIN endpoint numbering
  arm64: dts: renesas: ebisu: Add and enable SDHI device nodes
  arm64: dts: renesas: ebisu: Add serial console pins
  arm64: dts: renesas: Switch eMMC bus to 1V8 on Salvator-X and ULCB
  arm64: dts: renesas: r8a77990: Add all HSCIF nodes
  arm64: dts: renesas: r8a779{7|8}0: add TMU support
  ...

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:05:34 -08:00
Olof Johansson
51ea46e828 Renesas ARM Based SoC DT Updates for v4.21
* RZ/N1D (r9a06g032) SoC:
   - Correct GIC DT node name
   - Enable pin controller
 
 * RZ/G1C (r8a77470) iWave g23S single board computer
   - Add QSPI flash support
   - Add pinctl support for EtherAVB
   - Enable CMT0 (Renesas R-Car Compare Match Timer)
   - Enable RWDT (Renesas Watchdog Timer)
   - Enable uSD and eMMC support
 
 * RZ/G1C (r8a77470) SoC:
   - Describe USB-DMAC and I2C devices in DT
 
 * R-Mobile A1 (r8a7740), Emma Mobile EV2 (emev2) and
   SH-Mobile AG5 (sh72a0) SoCs:
   - Include SoC name in DTSI
 
 * R-Car H2 (r8a7790) based lager, and
   R-Car M2-W (r8a7791) based koelsch and porter boards:
   - Disable unconnected LVDS encoders
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE4nzZofWswv9L/nKF189kaWo3T74FAlv+kMsACgkQ189kaWo3
 T75B2Q//chiLcnE7zNwwoMnNlDnlmUaEmi8xEENVRcEXr6plHniDASMK52aZuQvJ
 zBAjJ/WaWQbxOjS+fKMO/nUH2x/8pMpd8GqClTYd82NTC0jIP90asTCIoacRoV8u
 iCA0wxG0bn1ytzFn+obor40750TVvLBFY+wdNHVVf/l+l/SasispuCfOVqYII57G
 SENuxT3qRU/4twDCjnBxZP8Qo8ozZU9BH5of3NKM0mxnRGh2sCIpzNWB94pBR+eA
 MCSgFFpMVsb3GUqsfMEtOKoyyiINTROnbD4WYG8Uputewg07P8JAG6Te0wsrd0dd
 EhlQjmMtppyfoL7046avKefrfX/wrZfyG0IFUGpXGa/uIKUv+eH2IBXCD9ZeDUHt
 IALxjfhWppSzAyV6yS02Xw0gd3VRUpA8qB58g2pntsUBkU1UVjv0dJVGIAMgI5QY
 K/wfJ4K4IGUoxYNtnswBVvFI1Yil0mzxU1t8TPKtyTWxxsoEV10sTwYRf0uycGis
 vq8ZmDzgL7o+V3OFtSPW7HDYCyA+9MGVShuIFm/7qGMVsHJtEXe3wBjStu6Hb9iT
 ZgodY/bTWdxuetaR7lePRUUVzwUvdrg2N47e2DgFjw0Fx8r0wPy9S6B4Op3tTeEx
 uF+8RfKoVURg9CSlNU5c0bszJPkYa5q5BpeSNpc50s1q2ix0q+o=
 =jcXN
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm-dt-for-v4.21' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt

Renesas ARM Based SoC DT Updates for v4.21

* RZ/N1D (r9a06g032) SoC:
  - Correct GIC DT node name
  - Enable pin controller

* RZ/G1C (r8a77470) iWave g23S single board computer
  - Add QSPI flash support
  - Add pinctl support for EtherAVB
  - Enable CMT0 (Renesas R-Car Compare Match Timer)
  - Enable RWDT (Renesas Watchdog Timer)
  - Enable uSD and eMMC support

* RZ/G1C (r8a77470) SoC:
  - Describe USB-DMAC and I2C devices in DT

* R-Mobile A1 (r8a7740), Emma Mobile EV2 (emev2) and
  SH-Mobile AG5 (sh72a0) SoCs:
  - Include SoC name in DTSI

* R-Car H2 (r8a7790) based lager, and
  R-Car M2-W (r8a7791) based koelsch and porter boards:
  - Disable unconnected LVDS encoders

* tag 'renesas-arm-dt-for-v4.21' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
  ARM: dts: r9a06g032: Correct the GIC DT node name
  ARM: dts: iwg23s-sbc: Add QSPI flash support
  ARM: dts: r8a77470: Add QSPI support
  ARM: dts: iwg23s-sbc: Add pinctl support for EtherAVB
  ARM: dts: iwg23s-sbc: Enable cmt0
  ARM: dts: r8a77470: Add CMT SoC specific support
  ARM: dts: r8a77470: Add USB-DMAC device nodes
  ARM: dts: iwg23s-sbc: Enable watchdog support
  ARM: dts: r8a77470: Add watchdog support to SoC dtsi
  ARM: dts: r8a7740, emev2, sh73a0: Include SoC name in DTSI
  ARM: dts: r8a779[01]: Disable unconnected LVDS encoders
  ARM: dts: iwg23s-sbc: Add uSD and eMMC support
  ARM: dts: r8a77470: Add SDHI1 support
  ARM: dts: r8a77470: Add SDHI0 support
  ARM: dts: r8a77470: Add I2C[0123] support
  ARM: dts: r9a06g032: Add pinctrl node

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:04:37 -08:00
Olof Johansson
42d76db96e New dts for Gru-Scarlet (tablet device), default backlight brightness
for all Gru devices, rk3399 spi dma properties, some improvements for
 the rk3399-sapphire board (fan, chosen, backlight), hs200 mode for the
 emmc on the rock64 and declaring all cpu cores in the cooling maps
 instead of just cpu0.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAlv2ni0QHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgeaVB/4vKlFs9CKs+oj7Wi5+UoSbsBReHqAuENVm
 6ShgnA15nCVaOzo3RT1ck8hHjKpAcTfX1siwmCK9OETwyxXI5vQCbKz3EIkoQYCQ
 WIyyqlTs6Ars67ZSxJSPgitj8kguzEfJo7T+mOhhQK0nWS1jjJRmdtMcsYXqJbMg
 OYj35cG4zRVFIQg87kQnVC3rkBu5Pb4LhY8J8+Ft2NUlRbUHBC08zgxe7oZLlTrt
 AIquFnEdhjSz0KxeN66wtvEyMT1e36qTjW8/iu3YQOIaxFoIcxCtrXIfxplFId6o
 f01Yu86wjfANQYIRzZLRV2GsLIlYpdiGk/aCQnSb6xgB4bcXiZQ9
 =WIig
 -----END PGP SIGNATURE-----

Merge tag 'v4.21-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

New dts for Gru-Scarlet (tablet device), default backlight brightness
for all Gru devices, rk3399 spi dma properties, some improvements for
the rk3399-sapphire board (fan, chosen, backlight), hs200 mode for the
emmc on the rock64 and declaring all cpu cores in the cooling maps
instead of just cpu0.

* tag 'v4.21-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: Add all CPUs in cooling maps
  arm64: dts: rockchip: add Gru Scarlet devicetrees
  arm64: dts: rockchip: move backlight from rk3399 sapphire to excavator
  arm64: dts: rockchip: Use default brightness table for rk3399-gru
  arm64: dts: rockchip: add chosen node on rk3399-sapphire
  arm64: dts: rockchip: enable HS200 for eMMC on rock64
  arm64: dts: rockchip: add fan on rk3399-sapphire board
  arm64: dts: rockchip: add rk3399 SPI DMAs

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:04:01 -08:00
Olof Johansson
9733488310 Powerdomain and QoS nodes for rk3066 and rk3188. A fix for a rock2
regulator name and referencing all cpus in the cooling maps instead
 of only cpu0.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAlv2mkYQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgf2ZCACoJZ1G4trbzqhdH1DXlLac7hsk+Hu/1jTW
 WrP6mXVyOJLdo3XRAoYEKI8WFx88pyXUDuXnxH4vO2SaoEDyIDYGuYxiiDZsrMiv
 oX0uyx9JKpY3cSBiDsPkfaxdcyGmVP2x10gxJvcoF4mP3FlMh5Ovtoyq83djxm7B
 /kw0NniMU9qKn8ilPAy+kiNADQkC3swupq0uLpt4wgvIPKkiGWEEaJjG30boc21q
 qpFlB9PowM52ZIqttTjvzh/wnb0eB6sEcI9tuuUa4S8y0PHzRpiIco0pqUsuq6I4
 UbAbqshORINRkJTZwhfw4HWmrKLF5s6vXGKFbx9M3TgVHKWGYHTw
 =zDNA
 -----END PGP SIGNATURE-----

Merge tag 'v4.21-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt

Powerdomain and QoS nodes for rk3066 and rk3188. A fix for a rock2
regulator name and referencing all cpus in the cooling maps instead
of only cpu0.

* tag 'v4.21-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: dts: rockchip: Add all CPUs in cooling maps
  ARM: dts: rockchip: Fix rk3288-rock2 vcc_flash name
  ARM: dts: rockchip: add rk3066/rk3188 power-domains
  ARM: dts: rockchip: add qos nodes found on rk3066 and rk3188
  dt-bindings: add power-domain header for RK3066 SoCs
  dt-bindings: add power-domain header for RK3188 SoCs

Signed-off-by: Olof Johansson <olof@lixom.net>
2018-11-30 15:03:39 -08:00
Pan Bian
164f7e5867 ocfs2: fix potential use after free
ocfs2_get_dentry() calls iput(inode) to drop the reference count of
inode, and if the reference count hits 0, inode is freed.  However, in
this function, it then reads inode->i_generation, which may result in a
use after free bug.  Move the put operation later.

Link: http://lkml.kernel.org/r/1543109237-110227-1-git-send-email-bianpan2016@163.com
Fixes: 781f200cb7a("ocfs2: Remove masklog ML_EXPORT.")
Signed-off-by: Pan Bian <bianpan2016@163.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Junxiao Bi <junxiao.bi@oracle.com>
Cc: Joseph Qi <jiangqi903@gmail.com>
Cc: Changwei Ge <ge.changwei@h3c.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
95feeabb77 mm/khugepaged: fix the xas_create_range() error path
collapse_shmem()'s xas_nomem() is very unlikely to fail, but it is
rightly given a failure path, so move the whole xas_create_range() block
up before __SetPageLocked(new_page): so that it does not need to
remember to unlock_page(new_page).

Add the missing mem_cgroup_cancel_charge(), and set (currently unused)
result to SCAN_FAIL rather than SCAN_SUCCEED.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261531200.2275@eggly.anvils
Fixes: 77da9389b9 ("mm: Convert collapse_shmem to XArray")
Signed-off-by: Hugh Dickins <hughd@kernel.org>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
06a5e1268a mm/khugepaged: collapse_shmem() do not crash on Compound
collapse_shmem()'s VM_BUG_ON_PAGE(PageTransCompound) was unsafe: before
it holds page lock of the first page, racing truncation then extension
might conceivably have inserted a hugepage there already.  Fail with the
SCAN_PAGE_COMPOUND result, instead of crashing (CONFIG_DEBUG_VM=y) or
otherwise mishandling the unexpected hugepage - though later we might
code up a more constructive way of handling it, with SCAN_SUCCESS.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261529310.2275@eggly.anvils
Fixes: f3f0e1d215 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd@google.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
87c460a0bd mm/khugepaged: collapse_shmem() without freezing new_page
khugepaged's collapse_shmem() does almost all of its work, to assemble
the huge new_page from 512 scattered old pages, with the new_page's
refcount frozen to 0 (and refcounts of all old pages so far also frozen
to 0).  Including shmem_getpage() to read in any which were out on swap,
memory reclaim if necessary to allocate their intermediate pages, and
copying over all the data from old to new.

Imagine the frozen refcount as a spinlock held, but without any lock
debugging to highlight the abuse: it's not good, and under serious load
heads into lockups - speculative getters of the page are not expecting
to spin while khugepaged is rescheduled.

One can get a little further under load by hacking around elsewhere; but
fortunately, freezing the new_page turns out to have been entirely
unnecessary, with no hacks needed elsewhere.

The huge new_page lock is already held throughout, and guards all its
subpages as they are brought one by one into the page cache tree; and
anything reading the data in that page, without the lock, before it has
been marked PageUptodate, would already be in the wrong.  So simply
eliminate the freezing of the new_page.

Each of the old pages remains frozen with refcount 0 after it has been
replaced by a new_page subpage in the page cache tree, until they are
all unfrozen on success or failure: just as before.  They could be
unfrozen sooner, but cause no problem once no longer visible to
find_get_entry(), filemap_map_pages() and other speculative lookups.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261527570.2275@eggly.anvils
Fixes: f3f0e1d215 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
042a308248 mm/khugepaged: minor reorderings in collapse_shmem()
Several cleanups in collapse_shmem(): most of which probably do not
really matter, beyond doing things in a more familiar and reassuring
order.  Simplify the failure gotos in the main loop, and on success
update stats while interrupts still disabled from the last iteration.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261526400.2275@eggly.anvils
Fixes: f3f0e1d215 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
2af8ff2918 mm/khugepaged: collapse_shmem() remember to clear holes
Huge tmpfs testing reminds us that there is no __GFP_ZERO in the gfp
flags khugepaged uses to allocate a huge page - in all common cases it
would just be a waste of effort - so collapse_shmem() must remember to
clear out any holes that it instantiates.

The obvious place to do so, where they are put into the page cache tree,
is not a good choice: because interrupts are disabled there.  Leave it
until further down, once success is assured, where the other pages are
copied (before setting PageUptodate).

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261525080.2275@eggly.anvils
Fixes: f3f0e1d215 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
aaa52e3400 mm/khugepaged: fix crashes due to misaccounted holes
Huge tmpfs testing on a shortish file mapped into a pmd-rounded extent
hit shmem_evict_inode()'s WARN_ON(inode->i_blocks) followed by
clear_inode()'s BUG_ON(inode->i_data.nrpages) when the file was later
closed and unlinked.

khugepaged's collapse_shmem() was forgetting to update mapping->nrpages
on the rollback path, after it had added but then needs to undo some
holes.

There is indeed an irritating asymmetry between shmem_charge(), whose
callers want it to increment nrpages after successfully accounting
blocks, and shmem_uncharge(), when __delete_from_page_cache() already
decremented nrpages itself: oh well, just add a comment on that to them
both.

And shmem_recalc_inode() is supposed to be called when the accounting is
expected to be in balance (so it can deduce from imbalance that reclaim
discarded some pages): so change shmem_charge() to update nrpages
earlier (though it's rare for the difference to matter at all).

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261523450.2275@eggly.anvils
Fixes: 800d8c63b2 ("shmem: add huge pages support")
Fixes: f3f0e1d215 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
701270fa19 mm/khugepaged: collapse_shmem() stop if punched or truncated
Huge tmpfs testing showed that although collapse_shmem() recognizes a
concurrently truncated or hole-punched page correctly, its handling of
holes was liable to refill an emptied extent.  Add check to stop that.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261522040.2275@eggly.anvils
Fixes: f3f0e1d215 ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Hugh Dickins <hughd@google.com>
Reviewed-by: Matthew Wilcox <willy@infradead.org>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
006d3ff27e mm/huge_memory: fix lockdep complaint on 32-bit i_size_read()
Huge tmpfs testing, on 32-bit kernel with lockdep enabled, showed that
__split_huge_page() was using i_size_read() while holding the irq-safe
lru_lock and page tree lock, but the 32-bit i_size_read() uses an
irq-unsafe seqlock which should not be nested inside them.

Instead, read the i_size earlier in split_huge_page_to_list(), and pass
the end offset down to __split_huge_page(): all while holding head page
lock, which is enough to prevent truncation of that extent before the
page tree lock has been taken.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261520070.2275@eggly.anvils
Fixes: baa355fd33 ("thp: file pages support for split_huge_page()")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
173d9d9fd3 mm/huge_memory: splitting set mapping+index before unfreeze
Huge tmpfs stress testing has occasionally hit shmem_undo_range()'s
VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page).

Move the setting of mapping and index up before the page_ref_unfreeze()
in __split_huge_page_tail() to fix this: so that a page cache lookup
cannot get a reference while the tail's mapping and index are unstable.

In fact, might as well move them up before the smp_wmb(): I don't see an
actual need for that, but if I'm missing something, this way round is
safer than the other, and no less efficient.

You might argue that VM_BUG_ON_PAGE(page_to_pgoff(page) != index, page) is
misplaced, and should be left until after the trylock_page(); but left as
is has not crashed since, and gives more stringent assurance.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261516380.2275@eggly.anvils
Fixes: e9b61f1985 ("thp: reintroduce split_huge_page()")
Requires: 605ca5ede7 ("mm/huge_memory.c: reorder operations in __split_huge_page_tail()")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:15 -08:00
Hugh Dickins
906f9cdfc2 mm/huge_memory: rename freeze_page() to unmap_page()
The term "freeze" is used in several ways in the kernel, and in mm it
has the particular meaning of forcing page refcount temporarily to 0.
freeze_page() is just too confusing a name for a function that unmaps a
page: rename it unmap_page(), and rename unfreeze_page() remap_page().

Went to change the mention of freeze_page() added later in mm/rmap.c,
but found it to be incorrect: ordinary page reclaim reaches there too;
but the substance of the comment still seems correct, so edit it down.

Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1811261514080.2275@eggly.anvils
Fixes: e9b61f1985 ("thp: reintroduce split_huge_page()")
Signed-off-by: Hugh Dickins <hughd@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: <stable@vger.kernel.org>	[4.8+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Li Zhijian
7c0950d455 initramfs: clean old path before creating a hardlink
sys_link() can fail due to the new path already existing.  This case
ofen occurs when we use a concated initrd, for example:

1) prepare a basic rootfs, it contains a regular files rc.local
lizhijian@:~/yocto-tiny-i386-2016-04-22$ cat etc/rc.local
 #!/bin/sh
 echo "Running /etc/rc.local..."
yocto-tiny-i386-2016-04-22$ find . | sed 's,^\./,,' | cpio -o -H newc | gzip -n -9 >../rootfs.cgz

2) create a extra initrd which also includes a etc/rc.local
lizhijian@:~/lkp-x86_64/etc$ echo "append initrd" >rc.local
lizhijian@:~/lkp/lkp-x86_64/etc$ cat rc.local
append initrd
lizhijian@:~/lkp/lkp-x86_64/etc$ ln rc.local rc.local.hardlink
append initrd
lizhijian@:~/lkp/lkp-x86_64/etc$ stat rc.local rc.local.hardlink
  File: 'rc.local'
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 11296086    Links: 2
Access: (0664/-rw-rw-r--)  Uid: ( 1002/lizhijian)   Gid: ( 1002/lizhijian)
Access: 2018-11-15 16:08:28.654464815 +0800
Modify: 2018-11-15 16:07:57.514903210 +0800
Change: 2018-11-15 16:08:24.180228872 +0800
 Birth: -
  File: 'rc.local.hardlink'
  Size: 14        	Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d	Inode: 11296086    Links: 2
Access: (0664/-rw-rw-r--)  Uid: ( 1002/lizhijian)   Gid: ( 1002/lizhijian)
Access: 2018-11-15 16:08:28.654464815 +0800
Modify: 2018-11-15 16:07:57.514903210 +0800
Change: 2018-11-15 16:08:24.180228872 +0800
 Birth: -

lizhijian@:~/lkp/lkp-x86_64$ find . | sed 's,^\./,,' | cpio -o -H newc | gzip -n -9 >../rc-local.cgz
lizhijian@:~/lkp/lkp-x86_64$ gzip -dc ../rc-local.cgz | cpio -t
.
etc
etc/rc.local.hardlink <<< it will be extracted first at this initrd
etc/rc.local

3) concate 2 initrds and boot
lizhijian@:~/lkp$ cat rootfs.cgz rc-local.cgz >concate-initrd.cgz
lizhijian@:~/lkp$ qemu-system-x86_64 -nographic -enable-kvm -cpu host -smp 1 -m 1024 -kernel ~/lkp/linux/arch/x86/boot/bzImage -append "console=ttyS0 earlyprint=ttyS0 ignore_loglevel" -initrd ./concate-initr.cgz -serial stdio -nodefaults

In this case, sys_link(2) will fail and return -EEXIST, so we can only get
the rc.local at rootfs.cgz instead of rc-local.cgz

[akpm@linux-foundation.org: move code to avoid forward declaration]
Link: http://lkml.kernel.org/r/1542352368-13299-1-git-send-email-lizhijian@cn.fujitsu.com
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Cc: Philip Li <philip.li@intel.com>
Cc: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Li Zhijian <zhijianx.li@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Anders Roxell
903e8ff867 kernel/kcov.c: mark funcs in __sanitizer_cov_trace_pc() as notrace
Since __sanitizer_cov_trace_pc() is marked as notrace, function calls in
__sanitizer_cov_trace_pc() shouldn't be traced either.
ftrace_graph_caller() gets called for each function that isn't marked
'notrace', like canonicalize_ip().  This is the call trace from a run:

[  139.644550]  ftrace_graph_caller+0x1c/0x24
[  139.648352]  canonicalize_ip+0x18/0x28
[  139.652313]  __sanitizer_cov_trace_pc+0x14/0x58
[  139.656184]  sched_clock+0x34/0x1e8
[  139.659759]  trace_clock_local+0x40/0x88
[  139.663722]  ftrace_push_return_trace+0x8c/0x1f0
[  139.667767]  prepare_ftrace_return+0xa8/0x100
[  139.671709]  ftrace_graph_caller+0x1c/0x24

Rework so that check_kcov_mode() and canonicalize_ip() that are called
from __sanitizer_cov_trace_pc() are also marked as notrace.

Link: http://lkml.kernel.org/r/20181128081239.18317-1-anders.roxell@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signen-off-by: Anders Roxell <anders.roxell@linaro.org>
Co-developed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Johannes Weiner
e0c274472d psi: make disabling/enabling easier for vendor kernels
Mel Gorman reports a hackbench regression with psi that would prohibit
shipping the suse kernel with it default-enabled, but he'd still like
users to be able to opt in at little to no cost to others.

With the current combination of CONFIG_PSI and the psi_disabled bool set
from the commandline, this is a challenge.  Do the following things to
make it easier:

1. Add a config option CONFIG_PSI_DEFAULT_DISABLED that allows distros
   to enable CONFIG_PSI in their kernel but leave the feature disabled
   unless a user requests it at boot-time.

   To avoid double negatives, rename psi_disabled= to psi=.

2. Make psi_disabled a static branch to eliminate any branch costs
   when the feature is disabled.

In terms of numbers before and after this patch, Mel says:

: The following is a comparision using CONFIG_PSI=n as a baseline against
: your patch and a vanilla kernel
:
:                          4.20.0-rc4             4.20.0-rc4             4.20.0-rc4
:                 kconfigdisable-v1r1                vanilla        psidisable-v1r1
: Amean     1       1.3100 (   0.00%)      1.3923 (  -6.28%)      1.3427 (  -2.49%)
: Amean     3       3.8860 (   0.00%)      4.1230 *  -6.10%*      3.8860 (  -0.00%)
: Amean     5       6.8847 (   0.00%)      8.0390 * -16.77%*      6.7727 (   1.63%)
: Amean     7       9.9310 (   0.00%)     10.8367 *  -9.12%*      9.9910 (  -0.60%)
: Amean     12     16.6577 (   0.00%)     18.2363 *  -9.48%*     17.1083 (  -2.71%)
: Amean     18     26.5133 (   0.00%)     27.8833 *  -5.17%*     25.7663 (   2.82%)
: Amean     24     34.3003 (   0.00%)     34.6830 (  -1.12%)     32.0450 (   6.58%)
: Amean     30     40.0063 (   0.00%)     40.5800 (  -1.43%)     41.5087 (  -3.76%)
: Amean     32     40.1407 (   0.00%)     41.2273 (  -2.71%)     39.9417 (   0.50%)
:
: It's showing that the vanilla kernel takes a hit (as the bisection
: indicated it would) and that disabling PSI by default is reasonably
: close in terms of performance for this particular workload on this
: particular machine so;

Link: http://lkml.kernel.org/r/20181127165329.GA29728@cmpxchg.org
Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
Tested-by: Mel Gorman <mgorman@techsingularity.net>
Reported-by: Mel Gorman <mgorman@techsingularity.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Alexey Dobriyan
dbd4af5474 proc: fixup map_files test on arm
https://bugs.linaro.org/show_bug.cgi?id=3782

Turns out arm doesn't permit mapping address 0, so try minimum virtual
address instead.

Link: http://lkml.kernel.org/r/20181113165446.GA28157@avx2
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Reported-by: Rafael David Tinoco <rafael.tinoco@linaro.org>
Tested-by: Rafael David Tinoco <rafael.tinoco@linaro.org>
Acked-by: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Qian Cai
8de456cf87 debugobjects: avoid recursive calls with kmemleak
CONFIG_DEBUG_OBJECTS_RCU_HEAD does not play well with kmemleak due to
recursive calls.

fill_pool
  kmemleak_ignore
    make_black_object
      put_object
        __call_rcu (kernel/rcu/tree.c)
          debug_rcu_head_queue
            debug_object_activate
              debug_object_init
                fill_pool
                  kmemleak_ignore
                    make_black_object
                      ...

So add SLAB_NOLEAKTRACE to kmem_cache_create() to not register newly
allocated debug objects at all.

Link: http://lkml.kernel.org/r/20181126165343.2339-1-cai@gmx.us
Signed-off-by: Qian Cai <cai@gmx.us>
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Waiman Long <longman@redhat.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Yang Shi <yang.shi@linux.alibaba.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Andrea Arcangeli
dcf7fe9d89 userfaultfd: shmem: UFFDIO_COPY: set the page dirty if VM_WRITE is not set
Set the page dirty if VM_WRITE is not set because in such case the pte
won't be marked dirty and the page would be reclaimed without writepage
(i.e.  swapout in the shmem case).

This was found by source review.  Most apps (certainly including QEMU)
only use UFFDIO_COPY on PROT_READ|PROT_WRITE mappings or the app can't
modify the memory in the first place.  This is for correctness and it
could help the non cooperative use case to avoid unexpected data loss.

Link: http://lkml.kernel.org/r/20181126173452.26955-6-aarcange@redhat.com
Reviewed-by: Hugh Dickins <hughd@google.com>
Cc: stable@vger.kernel.org
Fixes: 4c27fe4c4c ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Reported-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Mike Rapoport <rppt@linux.ibm.com>
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Andrea Arcangeli
e2a50c1f64 userfaultfd: shmem: add i_size checks
With MAP_SHARED: recheck the i_size after taking the PT lock, to
serialize against truncate with the PT lock.  Delete the page from the
pagecache if the i_size_read check fails.

With MAP_PRIVATE: check the i_size after the PT lock before mapping
anonymous memory or zeropages into the MAP_PRIVATE shmem mapping.

A mostly irrelevant cleanup: like we do the delete_from_page_cache()
pagecache removal after dropping the PT lock, the PT lock is a spinlock
so drop it before the sleepable page lock.

Link: http://lkml.kernel.org/r/20181126173452.26955-5-aarcange@redhat.com
Fixes: 4c27fe4c4c ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Reviewed-by: Mike Rapoport <rppt@linux.ibm.com>
Reviewed-by: Hugh Dickins <hughd@google.com>
Reported-by: Jann Horn <jannh@google.com>
Cc: <stable@vger.kernel.org>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Andrea Arcangeli
29ec90660d userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas
After the VMA to register the uffd onto is found, check that it has
VM_MAYWRITE set before allowing registration.  This way we inherit all
common code checks before allowing to fill file holes in shmem and
hugetlbfs with UFFDIO_COPY.

The userfaultfd memory model is not applicable for readonly files unless
it's a MAP_PRIVATE.

Link: http://lkml.kernel.org/r/20181126173452.26955-4-aarcange@redhat.com
Fixes: ff62a34210 ("hugetlb: implement memfd sealing")
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Reviewed-by: Mike Rapoport <rppt@linux.ibm.com>
Reviewed-by: Hugh Dickins <hughd@google.com>
Reported-by: Jann Horn <jannh@google.com>
Fixes: 4c27fe4c4c ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Cc: <stable@vger.kernel.org>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00
Andrea Arcangeli
5b51072e97 userfaultfd: shmem: allocate anonymous memory for MAP_PRIVATE shmem
Userfaultfd did not create private memory when UFFDIO_COPY was invoked
on a MAP_PRIVATE shmem mapping.  Instead it wrote to the shmem file,
even when that had not been opened for writing.  Though, fortunately,
that could only happen where there was a hole in the file.

Fix the shmem-backed implementation of UFFDIO_COPY to create private
memory for MAP_PRIVATE mappings.  The hugetlbfs-backed implementation
was already correct.

This change is visible to userland, if userfaultfd has been used in
unintended ways: so it introduces a small risk of incompatibility, but
is necessary in order to respect file permissions.

An app that uses UFFDIO_COPY for anything like postcopy live migration
won't notice the difference, and in fact it'll run faster because there
will be no copy-on-write and memory waste in the tmpfs pagecache
anymore.

Userfaults on MAP_PRIVATE shmem keep triggering only on file holes like
before.

The real zeropage can also be built on a MAP_PRIVATE shmem mapping
through UFFDIO_ZEROPAGE and that's safe because the zeropage pte is
never dirty, in turn even an mprotect upgrading the vma permission from
PROT_READ to PROT_READ|PROT_WRITE won't make the zeropage pte writable.

Link: http://lkml.kernel.org/r/20181126173452.26955-3-aarcange@redhat.com
Fixes: 4c27fe4c4c ("userfaultfd: shmem: add shmem_mcopy_atomic_pte for userfaultfd support")
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
Reported-by: Mike Rapoport <rppt@linux.ibm.com>
Reviewed-by: Hugh Dickins <hughd@google.com>
Cc: <stable@vger.kernel.org>
Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Jann Horn <jannh@google.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-11-30 14:56:14 -08:00