summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2018-03-27arm: dts: armada-*.dts: use SPDX-License-Identifier for most of the Armada ↵Gregory CLEMENT
based board Follow the recent trend for the license description, and also fix the wrongly stated X11 to MIT. As already pointed on the DT ML, the X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Acked-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-03-27Merge tag 'omap-for-v4.17/defconfig-signed' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc Pull "Defconfig updates for omap variants for v4.17 merge window" from Tony Lindgren: We need to enable MMC_SDHCI option in both omap2plus_defconfig and multi_v7_defconfig so systems are able to mount root when the dts files get updated for sdhci. Then let's update omap2plus_defconfig so we can patch it easier. And as Arnd noticed earlier, just running make savedefconfig will accidentally drop few Kconfig options. This is happening because some options are no longer available as loadable modules like LIRC. Or new dependencies have been added such as SND_OSSEMUL for selecting SOUND_OSS_CORE. So we first move the unchanged options around to their make savedefconfig suggested place, then update the options to prevent make savedefconfig dropping some options accidentally, and then finally drop the unused options. And after that we enable options DRM_OMAP and 8250_OMAP. These both have been around for years now. And we do have 8250_OMAP warn about console being redirected with SERIAL_8250_OMAP_TTYO_FIXUP option that is enabled by default. Some users may need to update their inittab to use ttyS* instead of ttyO* though. If this turns out to be a problem, we may want to introduce a separate compatible for 8250-omap. But I think we're good to go with the SERIAL_8250_OMAP_TTYO_FIXUP warning now. Let's not update multi_v7_defconfig yet though and first see how 8250_OMAP change plays out. We also enable few new options for PM on am335x and am437x, and CEC in omap2plus_defconfig. Naturally similar options can be later on added to multi_v7_defconfig, but in this series we only enable OTG, MUSB and the related PHYs in multi_v7_defconfig to make it more usable for distros. * tag 'omap-for-v4.17/defconfig-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: multi_v7_defconfig: Enable USB gadget configfs as loadable module ARM: multi_v7_defconfig: Enable various USB PHYs found on omap variants ARM: multi_v7_defconfig: Enable OTG and MUSB as loadable modules ARM: omap2plus_defconfig: Enable 8250_OMAP ARM: omap2plus_defconfig: Switch to use omapdrm by default ARM: omap2plus_defconfig: Enable CEC ARM: omap2plus_defconfig: Enable am335x and am437x PM options ARM: omap2plus_defconfig: Drop unneeded options ARM: omap2plus_defconfig: Add SND_OSSEMUL ARM: omap2plus_defconfig: Update LIRC options ARM: omap2plus_defconfig: Select MFD_TI_LMU ARM: omap2plus_defconfig: Add SERIAL_DEV for bluetooth ARM: omap2plus_defconfig: Update for moved options ARM: omap2plus_defconfig: Enable CONFIG_MMC_SDHCI_OMAP ARM: multi_v7_defconfig: Enable CONFIG_MMC_SDHCI_OMAP Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-03-27Merge tag 'renesas-defconfig-for-v4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc Pull "Renesas ARM Based SoC Defconfig Updates for v4.17" from Simon Horman: Updates to shmobile defconfig: * Redresh defconfig to ease future maintenence overhead * Disable CONFIG_EMBEDDED Geert Uytterhoeven says "CONFIG_EXPERT exposes too many config options that do not matter for development. E.g. it prohibits using the default values for the various SH_SCI options. However, CONFIG_EMBEDDED selects CONFIG_EXPERT, so it cannot be disabled. Hence disable CONFIG_EMBEDDED, and compensate for the loss of CONFIG_DEBUG_KERNEL by enabling the latter. Actual impact, all harmless: - CONFIG_NAMESPACES=y (plus a few related CONFIG_*_NS options), - CONFIG_SYSCTL_SYSCALL=n, - CONFIG_SERIAL_SH_SCI_NR_UARTS changed from 20 to 18, - Some HID support became enabled, - CONFIG_DEBUG_MEMORY_INIT=y," * Enable RZA1 pin controller This allows the Genmai board with RZ/A1 (r7s72100) SoC to once again boot using the shmobile defconfig. * tag 'renesas-defconfig-for-v4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: defconfig: Disable CONFIG_EMBEDDED ARM: shmobile: defconfig: Refresh ARM: shmobile: Enable RZA1 pin controller
2018-03-27Merge tag 'renesas-arm64-defconfig-for-v4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/soc Pull "Renesas ARM64 Based SoC Defconfig Updates for v4.17" from Simon Horman: Enable the following to allow them to be more widely exercised: * Newly added R8A77965 and R8A77980 SoCs * PWM and USB as used on R-Car Gen3 SoCs * tag 'renesas-arm64-defconfig-for-v4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: defconfig: enable R8A77965 SoC arm64: defconfig: Enable PWM and USB for R-Car arm64: defconfig: enable R8A77980 SoC
2018-03-27Merge tag 'tegra-for-4.17-arm64-defconfig' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/soc Pull "arm64: Default configuration updates for v4.17-rc1" from Thierry Reding: Enable the BPMP thermal and CPU frequency drivers as well as make sure that the Tegra SMMU is enabled by default because there's no fun without it. Also enable initial Tegra194 support. * tag 'tegra-for-4.17-arm64-defconfig' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: defconfig: Enable the Tegra SMMU by default arm64: defconfig: Enable CONFIG_TEGRA_BPMP_THERMAL arm64: defconfig: Enable CONFIG_ARM_TEGRA186_CPUFREQ arm64: defconfig: Enable NVIDIA Tegra194 support
2018-03-27Merge tag 'imx-defconfig-4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/soc Pull "i.MX defconfig updates for 4.17" from Shawn Guo: - Re-sync defconfig files by running savedefconfig. - Enable generic fsl-asoc-card driver for imx_v4_v5_defconfig. - Enable MAG3110 magnetometer sensor driver, AC97 and WM8962 codec driver, DA9062/63 PMIC, RTC and Watchdog support for imx_v6_v7_defconfig. * tag 'imx-defconfig-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: mxs_defconfig: Re-sync defconfig ARM: imx_v4_v5_defconfig: Use the generic fsl-asoc-card driver ARM: imx_v4_v5_defconfig: Re-sync defconfig ARM: imx_v6_v7_defconfig: Select CONFIG_SND_SOC_WM8962 explicitly ARM: imx_v6_v7_defconfig: Re-sync defconfig ARM: imx_v6_v7_defconfig: Enable Dialog Semiconductor DA9062 driver ARM: imx_v6_v7_defconfig: Enable AC97 codec support ARM: imx: Update imx_v6_v7_defconfig for mag3110 support ARM: imx_v6_v7_defconfig: enable OP-TEE ARM: imx_v6_v7_defconfig: select the CONFIG_CPUFREQ_DT
2018-03-27ARM: imx: fix imx6sll-only buildArnd Bergmann
When selecting SOC_IMX6SLL but not SOC_IMX6SL, we get a link error: arch/arm/mach-imx/mach-imx6sl.o: In function `imx6sl_init_late': mach-imx6sl.c:(.init.text+0x14): undefined reference to `imx6sl_cpuidle_init' This adds the missing line to the Makefile to also build the cpuidle support that we need here. Fixes: dee5dee2a5b2 ("ARM: imx: Add basic msl support for imx6sll") Acked-by: Shawn Guo <shawnguo@kernel.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-03-27ARM: imx: select ARM_CPU_SUSPEND for CPU_IDLE as wellArnd Bergmann
The cpuidle support calls cpu_suspend(), which is compiled conditionally, and fails to link unless something selects CONFIG_ARM_CPU_SUSPEND. arch/arm/mach-imx/cpuidle-imx6sx.o: In function `imx6sx_enter_wait': cpuidle-imx6sx.c:(.text+0x6c): undefined reference to `cpu_suspend' This adds an explicit select statement here. Acked-by: Shawn Guo <shawnguo@kernel.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-03-27arm: dts: armada-xp-98dx: use SPDX-License-Identifier for prestara 98d SoCsGregory CLEMENT
Follow the recent trend for the license description, and also fix the wrongly stated X11 to MIT. As already pointed on the DT ML, the X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Cc: Chris Packham <chris.packham@alliedtelesis.co.nz> Acked-by: Chris Packham <chris.packham@alliedtelesis.co.nz> Acked-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-03-27arm: dts: armada-*.dtsi: use SPDX-License-Identifier for most of the Armada SoCsGregory CLEMENT
Follow the recent trend for the license description, and also fix the wrongly stated X11 to MIT. As already pointed on the DT ML, the X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Acked-by: Jason Cooper <jason@lakedaemon.net> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-03-27ARM: dts: armada388-clearfog: add SFP module supportRussell King
Add SFP module support for Clearfog using the SFP phylink support. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Tested-by: Andrew Lunn <andrew@lunn.ch> Tested-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-03-27ARM: dts: armada-385-linksys: Disable internal RTCHauke Mehrtens
The internal RTC does not work correctly on these Linksys boards based on Marvell SoCs. For me it only shows Wed Dec 31 23:59:59 1969 and for others it is off by 3 minutes in 10 minutes running, this was reported by multiple users. On the Linksys Mamba device the device tree comment says that no crystal is connected to the internal RTC, this is probably also true for the other devices. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2018-03-27Merge tag 'imx-dt64-4.17-2' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt Pull "Freescale arm64 device tree fixups for 4.17" from Shawn Guo: - It reverts a couple of patches that "fix" DTC warnings on IFC memory controller in a wrong way. We will start over agagin to address the DTC warnings later. * tag 'imx-dt64-4.17-2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: Revert "dt-bindings: ifc: Fix the unit address format in the examples" Revert "arm64: dts: fsl: fix ifc simple-bus unit address format warnings"
2018-03-27Merge tag 'socfpga_dts_for_v4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into next/dt Pull "SoCFPGA DTS updates for v4.17" from Dinh Nguyen: - Fix GIC PPI warning - Stratix10 platform updates - Disable over-current for Arria10 devkit - Enable watchdog timer * tag 'socfpga_dts_for_v4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: arm: dts: socfpga: fix GIC PPI warning arm64: dts: stratix10: disable false USB overcurrent on devkit arm64: dts: stratix10: enable watchdog timer on the S10 devkit
2018-03-27Merge tag 'omap-for-v4.17/dt-pt2-signed' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt Pull "Second set of dts changes for omap variants for v4.17" from Tony Lindgren: This series of patches configures few new drivers and adds omap5 specific nodes: - Enable USB OTG mode for xhci on am437x - A series of changes to configure aux control module instance on omap5 mostly to get the audio clocks configured - A series of changes to update droid4 for MDM6600 modem USB PHY and UART1 pinctrl * tag 'omap-for-v4.17/dt-pt2-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: omap4-droid4: Configure uart1 pins ARM: dts: omap4-droid4: Configure MDM6600 USB PHY ARM: dts: omap4-droid4: Fix USB PHY port naming ARM: dts: omap5-board-common: Add phandle for mclk clock for twl6040 ARM: dts: omap5: add fref_xtal_ck support ARM: dts: omap5: add support for control module wkup pad config dt-bindings: omap5: ctrl: Support for control module wkup pad config ARM: dts: am43xx: Enable dual-role mode for USB1
2018-03-27Merge tag 'sunxi-h3-h5-for-4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt Pull "Allwinner H3/H5 changes for 4.17" from Maxime Ripard: Here is our usual bunch of changes to the common DTSI shared between arm and arm64, and their associated device trees. Even though the diffstat is quite big, it's been mostly just cleanups. The big feature is that the HDMI is now suported on H3 and H5 boards. * tag 'sunxi-h3-h5-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm64: allwinner: H5: Add Xunlong Orange Pi Zero Plus ARM: dts: sun8i-h3: Add Mali node ARM64: dts: sun50i: h5: Enable HDMI output on H5 boards ARM: dts: sun8i: h3: Enable HDMI output on H3 boards ARM: dts: sunxi: h3/h5: Add HDMI pipeline ARM: dts: sun8i: h2-plus: remove unnecessary mmc1_pins node ARM: dts: sunxi: h3-h5: rename mmc0_pins_a and mmc1_pins_a ARM: dts: sunxi: h3-h5: Move pinctrl of mmc1 from dts to dtsi ARM: dts: sunxi: h3-h5: Move pinctrl of mmc0 from dts to dtsi ARM: dts: sunxi: h3-h5: remove mmc0 card detection pin from pinctrl ARM: dts: sun8i: h2+: add support for Banana Pi M2 Zero board ARM: dts: sunxi: Switch MMC nodes away from cd-inverted property ARM: dts: nanopi-neo-air: Add WiFi / eMMC
2018-03-27Merge branch 'topic/ppc-kvm' into nextMichael Ellerman
Merge the DAWR series, which touches arch code and KVM code and may need to be merged into the kvm-ppc tree.
2018-03-27powerpc: Disable DAWR in the base POWER9 CPU featuresMichael Neuling
Using the DAWR on POWER9 can cause xstops, hence we need to disable it. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc: Disable DAWR on POWER9 via CPU feature quirkMichael Neuling
This disables the DAWR on all POWER9 CPUs via cpu feature quirk. Using the DAWR on POWER9 can cause xstops, hence we need to disable it. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27KVM: PPC: Book3S HV: Handle migration with POWER9 disabled DAWRMichael Neuling
POWER9 with the DAWR disabled causes problems for partition migration. Either we have to fail the migration (since we lose the DAWR) or we silently drop the DAWR and allow the migration to pass. This patch does the latter and allows the migration to pass (at the cost of silently losing the DAWR). This is not ideal but hopefully the best overall solution. This approach has been acked by Paulus. With this patch kvmppc_set_one_reg() will store the DAWR in the vcpu but won't actually set it on POWER9 hardware. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27KVM: PPC: Book3S HV: Return error from h_set_dabr() on POWER9Michael Neuling
POWER7 compat mode guests can use h_set_dabr on POWER9. POWER9 should use the DAWR but since it's disabled there we can't. This returns H_UNSUPPORTED on a h_set_dabr() on POWER9 where the DAWR is disabled. Current Linux guests ignore this error, so they will silently not get the DAWR (sigh). The same error code is being used by POWERVM in this case. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27KVM: PPC: Book3S HV: Return error from h_set_mode(SET_DAWR) on POWER9Michael Neuling
Return H_P2 on a h_set_mode(SET_DAWR) on POWER9 where the DAWR is disabled. Current Linux guests ignore this error, so they will silently not get the DAWR (sigh). The same error code is being used by POWERVM in this case. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27Merge tag 'sunxi-dt64-for-4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt Pull "Allwinner arm64 DT changes for 4.17" from Maxime Ripard: We've had for this release a pretty good progress on the arm64 front as well: - The A64 now has SPDIF support - The H6 is now supported (even though at an early stage) - The TERES-I laptop from Olimex has seen some early support as well * tag 'sunxi-dt64-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm64: dts: allwinner: a64: Add support for TERES-I laptop arm64: dts: allwinner: a64: add simplefb for A64 SoC arm64: dts: allwinner: a64: Add watchdog arm64: dts: allwinner: a64: Add i2c0 pins arm64: allwinner: h6: add support for Pine H64 board arm64: allwinner: h6: add the basical Allwinner H6 DTSI file arm64: dts: sunxi: Switch MMC nodes away from cd-inverted property arm64: dts: allwinner: a64: Add DAI nodes arm64: dts: allwinner: a64: Add SPDIF to the Pine64 arm64: dts: allwinner: a64: Add SPDIF to the A64 arm64: dts: allwinner: a64: Add the SPDIF block and pin
2018-03-27powerpc: Update xmon to use ppc_breakpoint_available()Michael Neuling
The 'bd' command will now print an error and not set the breakpoint on P9. Signed-off-by: Michael Neuling <mikey@neuling.org> [mpe: Unsplit quoted string] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27Merge tag 'sunxi-dt-for-4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt Pull "Allwinner DT changes for 4.17" from Maxime Ripard: There is a bunch of significant additions for this release cycle: - The A83t now has HDMI support - The A80 finally has SMP support (without PSCI, unfortunately) - The A80 has preliminary display support And also: - a number of boards based on old (A10, A20) SoCs now have the HDMI support enabled. - The display frontend is enabled on the A33, allowing to use it for hardware display scaling - New boards: Olimex A20-SOM204 variants * tag 'sunxi-dt-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (39 commits) ARM: dts: sun9i: cubieboard4: Enable VGA display output ARM: dts: sun9i: Add pinmux settings for LCD0 RGB888 output. ARM: dts: sun9i: Add device nodes for documented display pipelines for A80 ARM: dts: sun8i: reference tablet design: Enable PMIC power supplies ARM: dts: sun8i: a33: Enable A33 internal audio codec on A33-OLinuXino ARM: dts: sun8i: a33: Enable PMIC power supplies on A33-OLinuXino ARM: dts: sun8i: a33: Drop sunxi-common-regulators.dtsi for A33-OLinuXino ARM: dts: sun8i: a33: Drop GPIO pinmux settings for A33-OLinuXino ARM: dts: sun9i: Add enable-method for SMP support for the A80 SoC ARM: dts: sun8i: h3: Add eMMC for NanoPi M1 Plus ARM: dts: sun8i: a711: set regulator for each cluster of CPUs ARM: dts: sun8i: a83t: add stable OPP tables and CPUfreq ARM: dts: sun8i: a83t: add cpu0 and cpu100 labels ARM: dtsi: axp81x: remove IP name from DT node name ARM: dtsi: sun8i: a711: enable battery power supply subnode ARM: dtsi: axp81x: add battery power supply subnode ARM: dtsi: axp81x: add node for ADC ARM: dtsi: axp22x: add node for ADC ARM: dtsi: axp209: add node for ADC ARM: dts: sun7i: Enable HDMI support on the Orange Pi mini ...
2018-03-27Merge tag 'at91-ab-4.17-dt2' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/abelloni/linux into next/dt Pull "AT91 DT for 4.17 #2" from Alexandre Belloni: Pinctrl fixes, the UART pullups were discussed back in 2016. * tag 'at91-ab-4.17-dt2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: ARM: dts: at91sam9260: pullup rx on usart0 ARM: dts: at91rm9200: pullup rx on uart0 ARM: dts: at91: fixes uart pinctrl, set pullup on rx, clear pullup on tx ARM: dts: at91: at91sam9g25: fix mux-mask pinctrl property
2018-03-27powerpc: Update ptrace to use ppc_breakpoint_available()Michael Neuling
This updates the ptrace code to use ppc_breakpoint_available(). We now advertise via PPC_PTRACE_GETHWDBGINFO zero breakpoints when the DAWR is missing (ie. POWER9). This results in GDB falling back to software emulation of the breakpoint (which is slow). For the features advertised by PPC_PTRACE_GETHWDBGINFO, we keep advertising DAWR as if we don't GDB assumes 1 breakpoint irrespective of the number of breakpoints advertised. GDB then fails later when trying to set this one breakpoint. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc: Add ppc_breakpoint_available()Michael Neuling
Add ppc_breakpoint_available() to determine if a breakpoint is available currently via the DAWR or DABR. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Add eeh_state_active() helperSam Bobroff
Checking for a "fully active" device state requires testing two flag bits, which is open coded in several places, so add a function to do it. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Factor out common code eeh_reset_device()Sam Bobroff
The caller will always pass NULL for 'rmv_data' when 'eeh_aware_driver' is true, so the first two calls to eeh_pe_dev_traverse() can be combined without changing behaviour as can the two arms of the final 'if' block. This should not change behaviour. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Remove always-true tests in eeh_reset_device()Sam Bobroff
eeh_reset_device() tests the value of 'bus' more than once but the only caller, eeh_handle_normal_device() does this test itself and will never pass NULL. So, remove the dead tests. This should not change behaviour. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Clarify arguments to eeh_reset_device()Sam Bobroff
It is currently difficult to understand the behaviour of eeh_reset_device() due to the way it's parameters are used. In particular, when 'bus' is NULL, it's value is still necessary so the same value is looked up again locally under a different name ('frozen_bus') but behaviour is changed. To clarify this, add a new parameter 'driver_eeh_aware', and have the caller set it when it would have passed NULL for 'bus' and always pass a value for 'bus'. Then change any test that was on 'bus' to one on '!driver_eeh_aware' and replace uses of 'frozen_bus' with 'bus'. Also update the function's comment. This should not change behaviour. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Rename frozen_bus to bus in eeh_handle_normal_event()Sam Bobroff
The name "frozen_bus" is misleading: it's not necessarily frozen, it's just the PE's PCI bus. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Remove misleading test in eeh_handle_normal_event()Sam Bobroff
Remove a test that checks if "frozen_bus" is NULL, because it cannot have changed since it was tested at the start of the function and so must be true here. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Fix misleading comment in __eeh_addr_cache_get_device()Sam Bobroff
Commit "0ba178888b05 powerpc/eeh: Remove reference to PCI device" removed a call to pci_dev_get() from __eeh_addr_cache_get_device() but did not update the comment to match. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Manage EEH_PE_RECOVERING inside eeh_handle_normal_event()Sam Bobroff
Currently the EEH_PE_RECOVERING flag for a PE is managed by both the caller and callee of eeh_handle_normal_event() (among other places not considered here). This is complicated by the fact that the PE may or may not have been invalidated by the call. So move the callee's handling into eeh_handle_normal_event(), which clarifies it and allows the return type to be changed to void (because it no longer needs to indicate at the PE has been invalidated). This should not change behaviour except in eeh_event_handler() where it was previously possible to cause eeh_pe_state_clear() to be called on an invalid PE, which is now avoided. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/eeh: Remove eeh_handle_event()Sam Bobroff
The function eeh_handle_event(pe) does nothing other than switching between calling eeh_handle_normal_event(pe) and eeh_handle_special_event(). However it is only called in two places, one where pe can't be NULL and the other where it must be NULL (see eeh_event_handler()) so it does nothing but obscure the flow of control. So, remove it. Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com> Reviewed-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/powernv/npu: Do not try invalidating 32bit table when 64bit table is ↵Alexey Kardashevskiy
enabled GPUs and the corresponding NVLink bridges get different PEs as they have separate translation validation entries (TVEs). We put these PEs to the same IOMMU group so they cannot be passed through separately. So the iommu_table_group_ops::set_window/unset_window for GPUs do set tables to the NPU PEs as well which means that iommu_table's list of attached PEs (iommu_table_group_link) has both GPU and NPU PEs linked. This list is used for TCE cache invalidation. The problem is that NPU PE has just a single TVE and can be programmed to point to 32bit or 64bit windows while GPU PE has two (as any other PCI device). So we end up having an 32bit iommu_table struct linked to both PEs even though only the 64bit TCE table cache can be invalidated on NPU. And a relatively recent skiboot detects this and prints errors. This changes GPU's iommu_table_group_ops::set_window/unset_window to make sure that NPU PE is only linked to the table actually used by the hardware. If there are two tables used by an IOMMU group, the NPU PE will use the last programmed one which with the current use scenarios is expected to be a 64bit one. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/mm: Fix typo in commentsAlexey Kardashevskiy
Fixes: 912cc87a6 "powerpc/mm/radix: Add LPID based tlb flush helpers" Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/lpar/debug: Initialize flags before printing debug messageAlexey Kardashevskiy
With enabled DEBUG, there is a compile error: "error: ‘flags’ is used uninitialized in this function". This moves pr_devel() little further where @flags are initialized. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/init: Do not advertise radix during client-architecture-supportAlexey Kardashevskiy
Currently the pseries kernel advertises radix MMU support even if the actual support is disabled via the CONFIG_PPC_RADIX_MMU option. This adds a check for CONFIG_PPC_RADIX_MMU to avoid advertising radix to the hypervisor. Suggested-by: Paul Mackerras <paulus@ozlabs.org> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/mm: Fix section mismatch warning in stop_machine_change_mapping()Mauricio Faria de Oliveira
Fix the warning messages for stop_machine_change_mapping(), and a number of other affected functions in its call chain. All modified functions are under CONFIG_MEMORY_HOTPLUG, so __meminit is okay (keeps them / does not discard them). Boot-tested on powernv/power9/radix-mmu and pseries/power8/hash-mmu. $ make -j$(nproc) CONFIG_DEBUG_SECTION_MISMATCH=y vmlinux ... MODPOST vmlinux.o WARNING: vmlinux.o(.text+0x6b130): Section mismatch in reference from the function stop_machine_change_mapping() to the function .meminit.text:create_physical_mapping() The function stop_machine_change_mapping() references the function __meminit create_physical_mapping(). This is often because stop_machine_change_mapping lacks a __meminit annotation or the annotation of create_physical_mapping is wrong. WARNING: vmlinux.o(.text+0x6b13c): Section mismatch in reference from the function stop_machine_change_mapping() to the function .meminit.text:create_physical_mapping() The function stop_machine_change_mapping() references the function __meminit create_physical_mapping(). This is often because stop_machine_change_mapping lacks a __meminit annotation or the annotation of create_physical_mapping is wrong. ... Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com> Acked-by: Balbir Singh <bsingharora@gmail.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/64s: Wire up cpu_show_spectre_v2()Michael Ellerman
Add a definition for cpu_show_spectre_v2() to override the generic version. This has several permuations, though in practice some may not occur we cater for any combination. The most verbose is: Mitigation: Indirect branch serialisation (kernel only), Indirect branch cache disabled, ori31 speculation barrier enabled We don't treat the ori31 speculation barrier as a mitigation on its own, because it has to be *used* by code in order to be a mitigation and we don't know if userspace is doing that. So if that's all we see we say: Vulnerable, ori31 speculation barrier enabled Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/64s: Wire up cpu_show_spectre_v1()Michael Ellerman
Add a definition for cpu_show_spectre_v1() to override the generic version. Currently this just prints "Not affected" or "Vulnerable" based on the firmware flag. Although the kernel does have array_index_nospec() in a few places, we haven't yet audited all the powerpc code to see where it's necessary, so for now we don't list that as a mitigation. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/pseries: Use the security flags in pseries_setup_rfi_flush()Michael Ellerman
Now that we have the security flags we can simplify the code in pseries_setup_rfi_flush() because the security flags have pessimistic defaults. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/powernv: Use the security flags in pnv_setup_rfi_flush()Michael Ellerman
Now that we have the security flags we can significantly simplify the code in pnv_setup_rfi_flush(), because we can use the flags instead of checking device tree properties and because the security flags have pessimistic defaults. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/64s: Enhance the information in cpu_show_meltdown()Michael Ellerman
Now that we have the security feature flags we can make the information displayed in the "meltdown" file more informative. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/64s: Move cpu_show_meltdown()Michael Ellerman
This landed in setup_64.c for no good reason other than we had nowhere else to put it. Now that we have a security-related file, that is a better place for it so move it. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/powernv: Set or clear security feature flagsMichael Ellerman
Now that we have feature flags for security related things, set or clear them based on what we see in the device tree provided by firmware. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/pseries: Set or clear security feature flagsMichael Ellerman
Now that we have feature flags for security related things, set or clear them based on what we receive from the hypercall. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>