summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
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>
2018-03-27powerpc: Add security feature flags for Spectre/MeltdownMichael Ellerman
This commit adds security feature flags to reflect the settings we receive from firmware regarding Spectre/Meltdown mitigations. The feature names reflect the names we are given by firmware on bare metal machines. See the hostboot source for details. Arguably these could be firmware features, but that then requires them to be read early in boot so they're available prior to asm feature patching, but we don't actually want to use them for patching. We may also want to dynamically update them in future, which would be incompatible with the way firmware features work (at the moment at least). So for now just make them separate flags. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27powerpc/pseries: Add new H_GET_CPU_CHARACTERISTICS flagsMichael Ellerman
Add some additional values which have been defined for the H_GET_CPU_CHARACTERISTICS hypercall. Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2018-03-27Merge tag 'amlogic-dt-1' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/dt Pull "Amlogic 32-bit DT updates for v4.17" from Kevin Hilman: - odroid-c1: add microSD, ethernet, USB reset - add reset controller - fix requesting GPIOs greater than GPIOZ_3 * tag 'amlogic-dt-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM: dts: meson8b: the CBUS GPIO controller only has 83 GPIOs ARM: dts: meson8b-odroidc1: add microSD support ARM: dts: meson8b: add the I2C clocks ARM: dts: meson8b-odroidc1: ethernet support ARM: dts: meson8b: extend ethernet controller description ARM: dts: meson8: add the USB reset line ARM: dts: meson8: add the reset controller ARM: dts: meson8b: grow the reset controller memory zone
2018-03-27Merge tag 'qcom-dts-for-4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt Pull "Qualcomm Device Tree Changes for v4.17" from Andy Gross: * Add initial DTS file for Samsung Galaxy S5 * Fixups for castor touchscreen node * Fixup QS600 at23 manufacturer * Add XOADC and IIO to APQ8064 * tag 'qcom-dts-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: dts: msm8974: castor: Fix typo and add startup delay in touchscreen node ARM: dts: add XOADC and IIO HWMON to APQ8064 ARM: dts: use 'atmel' as at24 manufacturer for qcom-apq8064-cm-qs600 ARM: dts: qcom: Add initial DTS file for Samsung Galaxy S5 phone
2018-03-27Merge tag 'qcom-arm64-for-4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt Pull "Qualcomm ARM64 Updates for v4.17" from Andy Gross: * Fix GIC_CPU_MASK_SIMPLE and SPI5 config on MSM8996 * Add SDM845 and kryo385 documentation * Add MSM8916 cooling maps, cpu frequency scaling, APCS, and A53 PLL * Switch APCS to use mailbox on MSM8916 * Add rmtfs-mem on MSM8996 * tag 'qcom-arm64-for-4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/agross/linux: arm64: dts: qcom: Fix SPI5 config on MSM8996 dt-bindings: qcom: Add SDM845 bindings dt-bindings: arm: Document kryo385 cpu arm64: dts: msm8916: Add cpu cooling maps arm64: dts: msm8996: Add rmtfs sharedmem node arm64: dts: qcom: msm8916: Add CPU frequency scaling support arm64: dts: qcom: msm8916: Add clock properties to the APCS node arm64: dts: qcom: msm8916: Probe the APCS mailbox driver arm64: dts: qcom: msm8916: Add msm8916 A53 PLL DT node arm64: dts: msm8996: Fix wrong use of GIC_CPU_MASK_SIMPLE()
2018-03-27ARM64: dts: meson: Remove "cooling-{min|max}-level" for gpio-fan nodeViresh Kumar
The "cooling-min-level" and "cooling-max-level" properties are not parsed by any part of the kernel currently and the max cooling state of gpio-fan cooling device is found by referring to the "gpio-fan,speed-map" instead. Remove the unused properties from the gpio-fan node. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-03-27ARM: dts: gemini: Remove "cooling-{min|max}-level" for gpio-fan nodeViresh Kumar
The "cooling-min-level" and "cooling-max-level" properties are not parsed by any part of the kernel currently and the max cooling state of gpio-fan cooling device is found by referring to the "gpio-fan,speed-map" instead. Remove the unused properties from the gpio-fan node. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-03-27ARM64: dts: meson: Remove "cooling-{min|max}-level" for CPU nodesViresh Kumar
The "cooling-min-level" and "cooling-max-level" properties are not parsed by any part of the kernel currently and the max cooling state of a CPU cooling device is found by referring to the cpufreq table instead. Remove the unused properties from the CPU nodes. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Neil Armstrong <narmstrong@baylibre.com> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2018-03-27Merge tag 'armsoc-versatile-drm-dts' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/dt Pull "DTS changes for RealView+Versatile" from Linus Walleij: This augments the RealView and Versatile device trees to properly define the VGA and panel connectors in preparation for DRM. * tag 'armsoc-versatile-drm-dts' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator: ARM: dts: Augment panel setting for Versatile ARM: dts: Add Versatile IB2 device tree ARM: dts: Augment VGA connector bridge on Realview PBX ARM: dts: Augment VGA connector bridge on Realview EB ARM: dts: Augment VGA connector bridge on PB1176 ARM: dts: Augment VGA connector bridge on PB11MPcore
2018-03-27Merge tag 'amlogic-dt64' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into next/dt Pull "Amlogic 64-bit DT updates for v4.17" from Kevin Hilman: - AXG: add/enable UART_A, I2C, RMII, system controller, HW RNG - accept MAC from u-boot environment - misc. fixes * tag 'amlogic-dt64' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM64: dts: meson-gx: make efuse read-only ARM64: dts: meson: bump mali450 clk to 744MHz meson-gx-socinfo: Add package id for S905H ARM64: dts: meson-gxbb-wetek: add a wetek specific dtsi to cleanup hub and play2 ARM64: dts: meson: reduce odroid-c2 eMMC maximum rate ARM64: dts: amlogic: Convert to new-style SPDX license identifiers ARM64: dts: meson-axg: fix pwm_AO_cd compatible ARM64: dts: meson-axg: add sec_AO system controller ARM64: dts: meson: accept MAC addr from u-boot environment ARM64: dts: meson s905x: accept MAC addr from u-boot environment ARM64: dts: meson-axg: enable the UART_A controller ARM64: dts: meson-axg: complete the pinctrl info for UART_AO_A ARM64: dts: meson-axg: uart: Add the pinctrl info description ARM64: dts: meson-axg: uart: drop legacy compatible name from EE UART ARM64: dts: meson-axg: add RMII pins for ethernet controller ARM64: dts: meson-axg: enable I2C Master-1 for the audio speaker ARM64: dts: meson-axg: describe pin DT info for I2C controller ARM64: dts: meson-axg: add I2C DT info for Meson-AXG SoC ARM64: meson-axg: enable hardware rng
2018-03-27Merge tag 'mvebu-dt64-4.17-2' of git://git.infradead.org/linux-mvebu into ↵Arnd Bergmann
next/dt Pull "mvebu dt64 for 4.17 (part 2)" from Gregory CLEMENT: - Add registers clock for all the peripheral nodes that had been yet converted for CP110 (Armada 7K/8K) - Document URL for schematic for the EspressoBin (Armada 3720) * tag 'mvebu-dt64-4.17-2' of git://git.infradead.org/linux-mvebu: arm64: dts: armada-3720-espressobin: Document URL for schematic ARM64: dts: marvell: armada-cp110: Add registers clock for the PCIe nodes ARM64: dts: marvell: armada-cp110: Add registers clock for the NAND node ARM64: dts: marvell: armada-cp110: Add registers clock for the crypto node ARM64: dts: marvell: armada-cp110: Add registers clock for the trng node ARM64: dts: marvell: armada-cp110: Add registers clock for XOR engine nodes ARM64: dts: marvell: armada-cp110: Add registers clock for USB host nodes
2018-03-27Merge tag 'v4.16-next-dts64' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into next/dt Pull "ARM: mediatek: dts64 updates for v4.16-next" from Matthias Brugger: - mt2712e add auxadc devcie mt7622: - fix clock bindings description - add nodes for mmc, usb, SATA, PCI, ethernet, cpufreq, PMIC mt6380, pinctrl, scpsys and clock devices * tag 'v4.16-next-dts64' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: arm64: dts: mt2712: Add auxadc device node. dt-bindings: clock: mediatek: add missing required #reset-cells arm64: dts: mt7622: add mmc related device nodes arm64: dts: mt7622: add usb device nodes arm64: dts: mt7622: add SATA device nodes arm64: dts: mt7622: add PCIe device nodes arm64: dts: mt7622: add ethernet device nodes arm64: dts: mt7622: add flash related device nodes arm64: dts: mt7622: add SoC and peripheral related device nodes arm64: dts: mt7622: turn uart0 clock to real ones arm64: dts: mt7622: add cpufreq related device nodes arm64: dts: mt7622: add PMIC MT6380 related nodes arm64: dts: mt7622: add pinctrl related device nodes arm64: dts: mt7622: add power domain controller device nodes arm64: dts: mt7622: add clock controller device nodes
2018-03-27Merge tag 'v4.16-next-dts32' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into next/dt Pull "ARM: mediatek: dts32 updates for v4.16-next" from Matthias Brugger: mt7623: - fix style issues of the dts - add cpu clock properties - add PCI controller - add mt7623 reference board banapi-r2: - enable missing uarts - fix regulator for mmc - fix USB initialization * tag 'v4.16-next-dts32' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: arm: dts: mt7623: add PCIe related nodes arm: dts: mt7623: use - instead of _ in DT node name arm: dts: mt7623: remove useless property pinctrl-names at node switch@0 arm: dts: mt7623: add related clock properties to cpu[1-3] nodes arm: dts: mt7623: enable three available UARTs on bananapi-r2 arm: dts: mt7623: fix the regulators mmc should use on bananapi-r2 arm: dts: mt7623: fix USB initialization fails on bananapi-r2 dt-bindings: arm: mediatek: add support for more mt7623 reference boards
2018-03-27arm64: cmpxchg: Include linux/compiler.h in asm/cmpxchg.hWill Deacon
We need linux/compiler.h for unreachable(), so #include it here. Reported-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-03-27arm64: move percpu cmpxchg implementation from cmpxchg.h to percpu.hWill Deacon
We want to avoid pulling linux/preempt.h into cmpxchg.h, since that can introduce a circular dependency on linux/bitops.h. linux/preempt.h is only needed by the per-cpu cmpxchg implementation, which is better off alongside the per-cpu xchg implementation in percpu.h, so move it there and add the missing #include. Reported-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-03-27arm64: cmpxchg: Include build_bug.h instead of bug.h for BUILD_BUGWill Deacon
Having asm/cmpxchg.h pull in linux/bug.h is problematic because this ends up pulling in the atomic bitops which themselves may be built on top of atomic.h and cmpxchg.h. Instead, just include build_bug.h for the definition of BUILD_BUG. Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-03-27arm64: lse: Include compiler_types.h and export.h for out-of-line LL/SCWill Deacon
When the LL/SC atomics are moved out-of-line, they are annotated as notrace and exported to modules. Ensure we pull in the relevant include files so that these macros are defined when we need them. Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-03-27arm64: fpsimd: include <linux/init.h> in fpsimd.hWill Deacon
fpsimd.h uses the __init annotation, so pull in linux/init.h Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com>
2018-03-27Merge tag 'samsung-dt-4.17-2' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt Pull "Samsung DTS ARM changes for v4.17, part two" from Krzysztof Kozłowski: 1. Fix audio on Exynos5250 Chromebook Snow. 2. Enable HDMI audio Chromebook Snow, Peach Pit and Peach Pi. 3. Fix debounce of "OK" key on Midas (Trats2, Galaxy S3) boards. * tag 'samsung-dt-4.17-2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: exynos: Add #sound-dai-cells property to exynos5250 i2s nodes ARM: dts: exynos: Fix "debounce-interval" property misspelling in Midas ARM: dts: exynos: Enable HDMI audio support on Peach Pi ARM: dts: exynos: Enable HDMI audio support on Peach Pit ARM: dts: exynos: Enable HDMI audio on Snow Chromebook ARM: dts: exynos: Add missing clock and DAI properties to the max98095 node in Snow Chromebook ARM: dts: exynos: Add audio clocks configuration for Snow Chromebook ARM: dts: exynos: Add #sound-dai-cells property to hdmi node in exynos5250.dtsi
2018-03-27Merge tag 'renesas-dt-for-v4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Pull "Renesas ARM Based SoC DT Updates for v4.17" from Simon Horman: * Silk board with R-Car E2 (r8a7794) SoC - Add r1ex24002 EEPROM to DT Magnus Damm says "Extend the Silk board support to include U14 which is an I2C based EEPROM hooked up to the I2C1 bus." - Add GPIO keys to DT Magnus Damm says "Extend the Silk board support to include SW3, SW4, SW6 and SW12. They are all connected via GPIO lines and handled by the gpio-keys driver" * Marzen board with R-Car H1 (r7a7779) SoC - Add SDHI0 VCCQ Regulator Magnus Damm says "Add support for the on-board voltage regulator hooked up to GPIO3_20 on r8a7779 Marzen. The board schematics describes the regulator as U4 TPS2110A. Input wise, U4 has D0 fixed to ground, D1 tied to GPIO3_20 while IN1 is fixed to 3.3V and IN2 is fixed to 1.8V. OUT goes to the pull-ups for the data pins of SDHI0." * Porter board with R-Car M3W (r8a7791) SoC - Fix HDMI output routing Laurent Pinchart says "The HDMI encoder is connected to the RGB output of the DU, which is port@0, not port@1." * iWave Systems RZ/G1E SODIMM System On Module (iW-RainboW-G22M-SM) and iWave Systems RZ/G1M Qseven System On Module (iW-RainboW-G20M-Qseven) - Enable cmt0 * Stout board with R-Car H2 (r8a7790) SoC - Initial support * Lager board with R-Car H2 (r8a7790) SoC - Add CEC clock for HDMI transmitter Niklas Söderlund says "The adv7511 on the Lager board has a 12 MHz fixed clock for the CEC block. Specify this in the dts to enable CEC support." - Move cec_clock to root node By definition nodes without a bus address do not belong on the bus * kzm9d board with EMMA Mobile EV2 (EMEV2) SoC - Fix "debounce-interval" property misspelling * RZ/G1M (r8a7743) and RZ/G1H (r8a7745) SoCs - Add IPMMU DT nodes - Add VSP support * R-Car Gen2 boards - Use I2C demuxer for This allows run-time switching between alternate I2C IP blocks * R-Car Gen2 and RZ/G1 SoCs - Clean up DT files to ease future maintenance + add soc node for IP attached to the bus + sort subnodes of soc and root node + consistently use single space after = * R-Car H2 (r8a7790), M3-W (r8a7791) and M3-N (r7a7793) SoCs - Reduce size of thermal registers According to the "User's Manual: Hardware" v2.00 the registers at base 0xe61f0000 extend to an offset of 0x10, rather than 0x14 which is the case on the r8a73a4 (R-Mobile APE6). This should not have any runtime affect as mapping granularity is PAGE_SIZE. * tag 'renesas-dt-for-v4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (47 commits) ARM: dts: silk: Add GPIO keys to DT ARM: dts: silk: Add r1ex24002 EEPROM to DT ARM: dts: marzen: Add SDHI0 VCCQ Regulator ARM: dts: stout: Initial r8a7790 Stout board support ARM: dts: lager: Move cec_clock to root node ARM: dts: kzm9d: Fix "debounce-interval" property misspelling ARM: dts: gose: use demuxer for I2C4 ARM: dts: gose: use demuxer for I2C2 ARM: dts: silk: use demuxer for I2C1 ARM: dts: alt: use demuxer for I2C1 ARM: dts: porter: use demuxer for I2C2 ARM: dts: koelsch: use demuxer for I2C4 ARM: dts: koelsch: use demuxer for I2C2 ARM: dts: lager: use demuxer for IIC3/I2C3 ARM: dts: lager: use demuxer for IIC2/I2C2 ARM: dts: r8a7745: Add VSP support ARM: dts: r8a7743: Add VSP support ARM: dts: r8a7745: Add IPMMU DT nodes ARM: dts: r8a7743: Add IPMMU DT nodes ARM: dts: r8a7745: sort subnodes of soc node ...
2018-03-27Merge tag 'renesas-arm64-dt-for-v4.17' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt Pull "Renesas ARM64 Based SoC DT Updates for v4.17" from Simon Horman: * R-Car Gen3 boards and SoCs - Make phy-mode of EtherAVB a board-specific property. The SoC DTs file now uses "rgmii" and boards override this with "rgmii-txid" as appropriate. Previously "rgmii-txid" was used in SoC DTs but this did not describe that more sophiticated functionality is a board rather than SoC property. * Condor board with R-Car V3H (r8a77980) SoC - Initial upstream support * Condor board with R-Car V3H (r8a77980) SoC - Initial upstream support * R-Car D3 (r8a77995) - Add I2C nodes and then describing the PCA9654 I/O expander connected to the I2C0 bus. * Eagle board with R-Car V3M (r8a77970) SoC - Enable PFC support for configuring SCIF0 pins This uses PFC support added to the V3M DT - Describe EtherAVB PHY IRQ This uses support for GPIO added to the V3M DT - Enable I2C0 support Sergei Shtylyov says "The I2C0 bus is populated by ON Semiconductor PCA9653 I/O expander and Analog Devices ADV7511W HDMI transmitter (but we're only describing the former chip now)." * R-Car V3M (r8a77970) SoCs - Add PFC support - Describe GPIO devices - Describe I2C devices - Srt subnodes of root node alphabetically to eas future maintence overhead * Draak board with R-Car D3 (r8a77995) SoC - Enable SDHI2 Wolfram Sang says "The single SDHI controller is connected to eMMC." - Enable DU Kieran Bingham says "Enable the DU, providing only the VGA output for now." * R-Car D3 (r8a77995) and V3M (r8a77970) SoCs - Move nodes which have no reg property out of bus By deffinition the bus only has hardware with an address on the bus - Remove non-existing STBE region from EtherAVB Stream Buffer for EtherAVB-IF (STBE) is not present on these SoCs * R-Car D3 (r8a77995) SoC - Add FCPV, VSP and DU support Kieran Bingham says "The r8a77995-d3 platform supports 3 VSP instances. One VSPBS can be used as a dual-input image blender, while two VSPD instances can be utilised as part of a display (DU) pipeline. Add support for these, along with their required FCPV nodes." * Salvator-X and Salvator-XS boards with R-Car Gen3 SoCs - Add GPIO extender This is a basis for follow-up work to configure the GPIOs of the extender * Salvator-X and Salvator-XS board with R-Car M3-N (r8a77965) SoC - Initial upstream support * R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs - Add OPPs table for cpu devices This, along with recently upstreamed Z and Z2 clock support allows use of CPUFreq with both A57 and A53 CPUs. - Add thermal cooling management Allows the use of CPUFreq as a cooling device on A57 CPUs - Correct register size of thermal node Niklas Söderlund says "To be able to read fused calibration values from hardware the size of the register resource of TSC1 needs to be incremented to cover one more register which holds the information if the calibration values have been fused or not. Instead of increasing TSC1 size to the value from the datasheet update all TSC's size to the smallest granularity of the address decoder circuitry" - Fix register mappings on VSPs Kieran Bingham says "The VSPD includes a CLUT on RPF2. Ensure that the register space is mapped correctly to support this." * R-Car H3 (r8a7795) SoC - Move SCIF node into alphabetical order to ease future maintenance overhead - Add IPMMU-PV1 device node This resolves an oversight when IPMMU nodes were added to the H3 DT. All IPMMU devices should now be described in DT. - Add missing SYS-DMAC2 dmas Geert Uytterhoeven says "On R-Car H3, on-chip peripheral modules that can make use of DMA are wired to either SYS-DMAC0 only, or to both SYS-DMAC1 and SYS-DMAC2. Add the missing DMA properties pointing to SYS-DMAC2 for HSCIF[0-2], SCIF[0125], and I2C[0-2]. These were initially left out because early firmware versions prohibited using SYS-DMAC2. This restriction has been lifted in IPL and Secure Monitor Rev1.0.6 (released on Feb 25, 2016)." * tag 'renesas-arm64-dt-for-v4.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (69 commits) arm64: dts: renesas: v3msk: add SCIF0 pins arm64: dts: renesas: r8a7795: Add missing SYS-DMAC2 dmas arm64: dts: renesas: r8a7795: Add IPMMU-PV1 device node arm64: dts: renesas: r8a77970: sort subnodes of root node alphabetically arm64: dts: renesas: eagle: add I2C0 support arm64: dts: renesas: r8a77970: add I2C support arm64: dts: renesas: r8a77965-salvator-xs: Add SoC name to file header arm64: dts: renesas: r8a77965: Add EtherAVB device node arm64: dts: renesas: r8a77970: Set EtherAVB phy mode to "rgmii" arm64: dts: renesas: r8a77995: Set EtherAVB phy mode to "rgmii" arm64: dts: renesas: r8a7795: Set EtherAVB phy mode to "rgmii" arm64: dts: renesas: r8a7796: Set EtherAVB phy mode to "rgmii" arm64: dts: renesas: v3msk: Override EtherAVB phy-mode arm64: dts: renesas: eagle: Override EtherAVB phy-mode arm64: dts: renesas: draak: Override EtherAVB phy-mode arm64: dts: renesas: ulcb: Override EtherAVB phy-mode arm64: dts: renesas: salvator-common: Override EtherAVB phy-mode arm64: dts: renesas: r8a77965: Add INTC-EX device node arm64: dts: renesas: r8a77965: Add IIC-DVFS device node arm64: dts: renesas: Add support for Salvator-XS with R-Car M3-N ...
2018-03-27Merge tag 'tegra-for-4.17-arm64-dt' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt Pull "arm64: tegra: Device tree changes for v4.17-rc1" from Thierry Reding: Adds initial support for the P2972-0000 development board based on Tegra194 and enables the AHCI controller on Jetson TX1. * tag 'tegra-for-4.17-arm64-dt' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: Enable AHCI on Jetson TX1 arm64: tegra: Add SATA node for Tegra210 arm64: tegra: Add device tree for the Tegra194 P2972-0000 board arm64: tegra: Add Tegra194 chip device tree
2018-03-27Merge tag 'tegra-for-4.17-arm-dt' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux into next/dt Pull "ARM: tegra: Device tree changes for v4.17-rc1" from Thierry Reding: Support for the VDE is added on Tegra30 along with some general cleanup and some improvements to the various Toradex boards. * tag 'tegra-for-4.17-arm-dt' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: apalis-tk1: Support v1.2 hardware revision ARM: tegra: apalis-tk1: Copyright period, spurious newlines ARM: tegra: apalis-tk1: Hog group for ethernet, PCIe, reset GPIOs ARM: tegra: apalis-tk1: Add missing as3722 gpio0 configuration ARM: tegra: apalis-tk1: Activate PWM pin muxing for pwm3 ARM: tegra: apalis-tk1: Set critical trips ARM: tegra: apalis/colibri: Remove unneeded reg property ARM: tegra: apalis/colibri: Use correct compatible for RTC ARM: tegra: Fix I2C bus frequencies on Apalis/Colibri ARM: tegra: venice2: Remove duplicate pcie-1 node ARM: tegra: beaver: Remove invalid uses of rsvd1 ARM: tegra: Use proper IRQ type definitions ARM: tegra: Fix ULPI regression on Tegra20 ARM: tegra: Add unit address to VDE IRAM area ARM: tegra: Add video decoder node on Tegra30 ARM: tegra: Add IRAM node on Tegra30
2018-03-27Merge tag 'sunxi-fixes-for-4.16' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into fixes Pull "Allwinner Fixes for 4.16" from Maxime Ripard: The first and second patches fix the regulator support for the Bananapi M2 board. The last one updates my email address in MAINTAINERS. * tag 'sunxi-fixes-for-4.16' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: MAINTAINERS: update email address for Maxime Ripard ARM: dts: sun6i: a31s: bpi-m2: add missing regulators ARM: dts: sun6i: a31s: bpi-m2: improve pmic properties
2018-03-27Merge tag 'omap-for-v4.16/sram-fix-signed' of ↵Arnd Bergmann
ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Pull "Two fixes for omap variants for v4.16-rc cycle" from Tony Lindgren: Fix insecure W+X mapping warning for SRAM for omaps that don't yet use drivers/misc/*sram*.c code. An earlier attempt at fixing this turned out to cause problems with PM on omap3, this version works with PM on omap3. Also fix dmtimer probe for omap16xx devices that was noticed with the pending dmtimer move to drivers. It seems this has been broken for a while and is a non-critical for booting. It is needed for PM on omap16xx though. * tag 'omap-for-v4.16/sram-fix-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP: Fix SRAM W+X mapping ARM: OMAP: Fix dmtimer init for omap1
2018-03-27Revert "arm64: Revert L1_CACHE_SHIFT back to 6 (64-byte cache line size)"Will Deacon
This reverts commit 1f85b42a691cd8329ba82dbcaeec80ac1231b32a. The internal dma-direct.h API has changed in -next, which collides with us trying to use it to manage non-coherent DMA devices on systems with unreasonably large cache writeback granules. This isn't at all trivial to resolve, so revert our changes for now and we can revisit this after the merge window. Effectively, this just restores our behaviour back to that of 4.16. Signed-off-by: Will Deacon <will.deacon@arm.com>