This patch adds the AO CEC node in all the HDMI enabled boards DTS.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
The AO clkc needs to be updated to new bindings with an system control parent
node and moving the clkc node as subnode.
Also adds the SoC specific compatible following the bindings requirements.
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Kevin Hilman <khilman@baylibre.com>
There is some work that should be done after setting the personality.
Currently it's done in the macro, which is not the best idea.
In this patch new arch_setup_new_exec() routine is introduced, and all
setup code is moved there, as suggested by Catalin:
https://lkml.org/lkml/2017/8/4/494
Cc: Pratyush Anand <panand@redhat.com>
Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
[catalin.marinas@arm.com: comments changed or removed]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
With 16KB pages and a kernel Image larger than 16MB, the current
kaslr_early_init() logic for avoiding mappings across swapper table
boundaries fails since increasing the offset by kimg_sz just moves the
problem to the next boundary.
This patch rounds the offset down to (1 << SWAPPER_TABLE_SHIFT) if the
Image crosses a PMD_SIZE boundary.
Fixes: afd0e5a876 ("arm64: kaslr: Fix up the kernel image alignment")
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Neeraj Upadhyay <neeraju@codeaurora.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
In the KASLR setup routine, we ensure that the early virtual mapping
of the kernel image does not cover more than a single table entry at
the level above the swapper block level, so that the assembler routines
involved in setting up this mapping can remain simple.
In this calculation we add the proposed KASLR offset to the values of
the _text and _end markers, and reject it if they would end up falling
in different swapper table sized windows.
However, when taking the addresses of _text and _end, the modulo offset
(the physical displacement modulo 2 MB) is already accounted for, and
so adding it again results in incorrect results. So disregard the modulo
offset from the calculation.
Fixes: 08cdac619c ("arm64: relocatable: deal with physically misaligned ...")
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
When there's a fatal signal pending, arm64's do_page_fault()
implementation returns 0. The intent is that we'll return to the
faulting userspace instruction, delivering the signal on the way.
However, if we take a fatal signal during fixing up a uaccess, this
results in a return to the faulting kernel instruction, which will be
instantly retried, resulting in the same fault being taken forever. As
the task never reaches userspace, the signal is not delivered, and the
task is left unkillable. While the task is stuck in this state, it can
inhibit the forward progress of the system.
To avoid this, we must ensure that when a fatal signal is pending, we
apply any necessary fixup for a faulting kernel instruction. Thus we
will return to an error path, and it is up to that code to make forward
progress towards delivering the fatal signal.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Laura Abbott <labbott@redhat.com>
Cc: stable@vger.kernel.org
Reviewed-by: Steve Capper <steve.capper@arm.com>
Tested-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: James Morse <james.morse@arm.com>
Tested-by: James Morse <james.morse@arm.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
There are some tricky dependencies between the different stages of
flushing the FPSIMD register state during exec, and these can race
with context switch in ways that can cause the old task's regs to
leak across. In particular, a context switch during the memset() can
cause some of the task's old FPSIMD registers to reappear.
Disabling preemption for this small window would be no big deal for
performance: preemption is already disabled for similar scenarios
like updating the FPSIMD registers in sigreturn.
So, instead of rearranging things in ways that might swap existing
subtle bugs for new ones, this patch just disables preemption
around the FPSIMD state flushing so that races of this type can't
occur here. This brings fpsimd_flush_thread() into line with other
code paths.
Cc: stable@vger.kernel.org
Fixes: 674c242c93 ("arm64: flush FP/SIMD state correctly after execve()")
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Currently mm->context.flags field uses thread_info flags which is not
the best idea for many reasons. For example, mm_context_t doesn't need
most of thread_info flags. And it would be difficult to add new mm-related
flag if needed because it may easily interfere with TIF ones.
To deal with it, the new MMCF_AARCH32 flag is introduced for
mm_context_t->flags, where MMCF prefix stands for mm_context_t flags.
Also, mm_context_t flag doesn't require atomicity and ordering of the
access, so using set/clear_bit() is replaced with simple masks.
Signed-off-by: Yury Norov <ynorov@caviumnetworks.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Replace a lot of if statements with switch and case labels to make it
much clearer which huge page sizes are supported.
Also, we prevent PUD_SIZE from being used on systems not running with
4KB PAGE_SIZE. Before if one supplied PUD_SIZE in these circumstances,
then unusuable huge page sizes would be in use.
Fixes: 084bd29810 ("ARM64: mm: HugeTLB support.")
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
also known as -
Revert "Revert "Revert "commit 66b3923a1a ("arm64: hugetlb: add
support for PTE contiguous bit")"""
Now that our hugetlb implementation is compliant with the
break-before-make requirements of the architecture and we have addressed
some of the issues in core code required for properly dealing with
hardware poisoning of contiguous hugepages let's re-enable support for
contiguous hugepages.
This reverts commit 6ae979ab39.
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
The default implementation of set_huge_swap_pte_at() does not support
hugepages consisting of contiguous ptes. Override it to add support for
contiguous hugepages.
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
The default huge_pte_clear() implementation does not clear contiguous
page table entries when it encounters contiguous hugepages that are
supported on arm64.
Fix this by overriding the default implementation to clear all the
entries associated with contiguous hugepages.
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
huge_pte_offset() was updated to correctly handle swap entries for
hugepages. With the addition of the size parameter, it is now possible
to disambiguate whether the request is for a regular hugepage or a
contiguous hugepage.
Fix huge_pte_offset() for contiguous hugepages by using the size to find
the correct page table entry.
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
It has become apparent that one has to take special care when modifying
attributes of memory mappings that employ the contiguous bit.
Both the requirement and the architecturally correct "Break-Before-Make"
technique of updating contiguous entries can be found described in:
ARM DDI 0487A.k_iss10775, "Misprogramming of the Contiguous bit",
page D4-1762.
The huge pte accessors currently replace the attributes of contiguous
pte entries in place thus can, on certain platforms, lead to TLB
conflict aborts or even erroneous results returned from TLB lookups.
This patch adds two helper functions -
* get_clear_flush(.) - clears a contiguous entry and returns the head
pte (whilst taking care to retain dirty bit information that could
have been modified by DBM).
* clear_flush(.) that clears a contiguous entry
A tlb invalidate is performed to then ensure that there is no
possibility of multiple tlb entries being present for the same region.
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
(Added helper clear_flush(), updated commit log, and some cleanup)
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
[catalin.marinas@arm.com: remove CONFIG_ARM64_HW_AFDBM check]
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This patch aims to re-structure the huge pte accessors without affecting
their functionality. Control flow is changed to reduce indentation and
expanded use is made of post for loop variable modification.
It is then much easier to add break-before-make semantics in a subsequent
patch.
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Rather than xor pte bits in various places, use this helper function.
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This patch adds a WARN_ON to set_huge_pte_at as the accessor assumes
that entries to be written down are all present. (There are separate
accessors to clear huge ptes).
We will need to handle the !pte_present case where memory offlining
is used on hugetlb pages. swap and migration entries will be supplied
to set_huge_pte_at in this case.
Cc: David Woods <dwoods@mellanox.com>
Signed-off-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Commit 0ee5941 : (x86/panic: replace smp_send_stop() with kdump friendly
version in panic path) introduced crash_smp_send_stop() which is a weak
function and can be overridden by architecture codes to fix the side effect
caused by commit f06e515 : (kernel/panic.c: add "crash_kexec_post_
notifiers" option).
ARM64 architecture uses the weak version function and the problem is that
the weak function simply calls smp_send_stop() which makes other CPUs
offline and takes away the chance to save crash information for nonpanic
CPUs in machine_crash_shutdown() when crash_kexec_post_notifiers kernel
option is enabled.
Calling smp_send_crash_stop() in machine_crash_shutdown() is useless
because all nonpanic CPUs are already offline by smp_send_stop() in this
case and smp_send_crash_stop() only works against online CPUs.
The result is that secondary CPUs registers are not saved by
crash_save_cpu() and the vmcore file misreports these CPUs as being
offline.
crash_smp_send_stop() is implemented to fix this problem by replacing the
existing smp_send_crash_stop() and adding a check for multiple calling to
the function. The function (strong symbol version) saves crash information
for nonpanic CPUs and machine_crash_shutdown() tries to save crash
information for nonpanic CPUs only when crash_kexec_post_notifiers kernel
option is disabled.
* crash_kexec_post_notifiers : false
panic()
__crash_kexec()
machine_crash_shutdown()
crash_smp_send_stop() <= save crash dump for nonpanic cores
* crash_kexec_post_notifiers : true
panic()
crash_smp_send_stop() <= save crash dump for nonpanic cores
__crash_kexec()
machine_crash_shutdown()
crash_smp_send_stop() <= just return.
Signed-off-by: Hoeun Ryu <hoeun.ryu@gmail.com>
Reviewed-by: James Morse <james.morse@arm.com>
Tested-by: James Morse <james.morse@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
atomic_pool is setup once while init stage and never changed after
that, so it is good candidate for __ro_after_init
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
gen_pool_first_fit_order_align() does not make use of additional data,
so pass plain NULL there.
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
The at24 driver allows to register I2C EEPROM chips using different vendor
and devices, but the I2C subsystem does not take the vendor into account
when matching using the I2C table since it only has device entries.
But when matching using an OF table, both the vendor and device has to be
taken into account so the driver defines only a set of compatible strings
using the "atmel" vendor as a generic fallback for compatible I2C devices.
So add this generic fallback to the device node compatible string to make
the device to match the driver using the OF device ID table.
Signed-off-by: Javier Martinez Canillas <javier@dowhile0.org>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Change the dtsi include code to use the C pre-processor #include instead
of the device tree /include/. This enables option to use dt binding
headers.
Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
Reviewed-by: Sören Brinkmann <soren.brinkmann@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Do not enable smmu via dtsi. Enable it in board file when needed.
Signed-off-by: Naga Sureshkumar Relli <nagasure@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Mainline kernel has r1p12 compatible string now. Use this new compatible
string and also append generic compatible string.
Keep in your mind that using this generic compatible string not all uart
features will be available.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Moritz Fischer <mdf@kernel.org>
Adding prefetchable memory space to pcie device tree node.
Shifting configuration space to 64-bit address space.
Removing pcie device tree node from amba as it requires size-cells=<2>
in order to access 64-bit address space.
Signed-off-by: Bharat Kumar Gogada <bharatku@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Add debug console to dtsi to be able to enable it in
board dts file.
Keep in your mind that every core has separate dcc port in case you want
to run SMP kernel.
DCC is very helpful communication channel for debugging.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Added the idle-states node to describe zynqmp idle states. Only
cpu-sleep-0 idle state is added in this patch. References to the
idle-states node are added in all CPU nodes. Time values: entry/exit
latencies and min-residency, needs to be tuned. arm,psci-suspend-param
is selected to comply with PSCIv1.0 and Extended StateID format.
Signed-off-by: Stefan Krsmanovic <stefan.krsmanovic@aggios.com>
Acked-by: Will Wong <willw@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Since the pte handling for hardware AF/DBM works even when the hardware
feature is not present, make the pte accessors implementation permanent
and remove the corresponding #ifdefs. The Kconfig option is kept as it
can still be used to disable the feature at the hardware level.
Reviewed-by: Will Deacon <will.deacon@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
ptep_set_wrprotect() is only called on CoW mappings which are private
(!VM_SHARED) with the pte either read-only (!PTE_WRITE && PTE_RDONLY) or
writable and software-dirty (PTE_WRITE && !PTE_RDONLY && PTE_DIRTY).
There is no race with the hardware update of the dirty state: clearing
of PTE_RDONLY when PTE_WRITE (a.k.a. PTE_DBM) is set. This patch removes
the code setting the software PTE_DIRTY bit in ptep_set_wrprotect() as
superfluous. A VM_WARN_ONCE is introduced in case the above logic is
wrong or the core mm code changes its use of ptep_set_wrprotect().
Reviewed-by: Will Deacon <will.deacon@arm.com>
Acked-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Currently PTE_RDONLY is treated as a hardware only bit and not handled
by the pte_mkwrite(), pte_wrprotect() or the user PAGE_* definitions.
The set_pte_at() function is responsible for setting this bit based on
the write permission or dirty state. This patch moves the PTE_RDONLY
handling out of set_pte_at into the pte_mkwrite()/pte_wrprotect()
functions. The PAGE_* definitions to need to be updated to explicitly
include PTE_RDONLY when !PTE_WRITE.
The patch also removes the redundant PAGE_COPY(_EXEC) definitions as
they are identical to the corresponding PAGE_READONLY(_EXEC).
Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
To take advantage of the LSE atomic instructions and also make the code
cleaner, convert the kvm_set_s2pte_readonly() function to use the more
generic cmpxchg().
Cc: Marc Zyngier <marc.zyngier@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
With the support for hardware updates of the access and dirty states,
the following pte handling functions had to be implemented using
exclusives: __ptep_test_and_clear_young(), ptep_get_and_clear(),
ptep_set_wrprotect() and ptep_set_access_flags(). To take advantage of
the LSE atomic instructions and also make the code cleaner, convert
these pte functions to use the more generic cmpxchg()/xchg().
Reviewed-by: Will Deacon <will.deacon@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Steve Capper <steve.capper@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This adds and enable the operating points that have been tested and are
currently supported by the SoC. This also adds clocks for ARMCLKL and
ARMCLKB.
Signed-off-by: Romain Perier <romain.perier@collabora.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
RK805 consists of 4 DCDCs, 3 LDOs. It's different from RK808
and RK818 that there are 2 output only GPIOs, we should add
properties "gpio-controller" and "gpio-cells = <2>".
Signed-off-by: Joseph Chen <chenjh@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
To prevent the compiler from emitting absolute references to screen_info
when building position independent code, redeclare the symbol with hidden
visibility.
Tested-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-efi@vger.kernel.org
Link: http://lkml.kernel.org/r/20170818194947.19347-3-ard.biesheuvel@linaro.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
The usual improvement patches:
- PMIC, USB and WiFi enabled for Bananapi M64
- New board added: NanoPi A64
- New board added: Olimex A64-OLinuXino
-----BEGIN PGP SIGNATURE-----
iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmXumoOHHdlbnNAY3Np
ZS5vcmcACgkQOJpUIZwPJDC2oQ/8D3P940dA95Sz5nuKWeSY5jvDUzIR9AfYhbSP
W7tpEPenfZbyt55l3m50UptK3WKLSQL7v0R5FamFUljW4VaK96hUJ/gJMUYguso+
gH04gqrnfqSFpXqxrjBu71H3u+4QBTKU47MIhoY7Rs8K8odKlheBzE/9qzddlDab
MLWg3mHLlgcmmZRUR2HGTcWOw4xUUhCpXvKSZeoOSU0VRdQIqCnYFbhUS67obUQ9
XZ5wSuxEnXPYqvhrmFkRIFtirgagsmg247TdlRjnmBMmdyXzzyZE1U+bFiMRyWoN
x7VbCNnNqjIh79s0z1nHNekOcnaXExAgI/T7qR7M9ALZEbxWVOWn0FBceuKPqARz
BCU4H2sj5Rq99i8YDbEU9Ms2uwLExisPQEfDqyIBgipD5jU9Re3q2IMsHdH4V97M
V5DwBncXc2WL5aMfFICKTXR7x9Bt7BU+zjebCFSq1IJ4n48nWSISMQTgWLk0E+5i
8z7R7e0+hNw13Scymw97bg4Bx8LVQizsyfHSB0uihC4cb61kH+WLyKNCDpPJnj+g
7aSI0PJ0ItoXqoR2siu5UE8NSQOrZriOtjPrIbJIrj+PKvhn8yhKvsqM7H3wJ37+
FZVejeF+jCHFrinELso1XYXgvQyKpnBcL2LtaxZ7S889f51q90/FTDO1MnprhC0z
o8Iq4SA=
=u/18
-----END PGP SIGNATURE-----
Merge tag 'sunxi-dt64-for-4.14-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt64
Pull "Allwinner arm64 device tree changes for 4.14, round 2" from Chen-Yu Tsai:
The usual improvement patches:
- PMIC, USB and WiFi enabled for Bananapi M64
- New board added: NanoPi A64
- New board added: Olimex A64-OLinuXino
* tag 'sunxi-dt64-for-4.14-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
arm64: allwinner: a64: Add A64-OLinuXino initial support
arm64: allwinner: a64: Add initial NanoPi A64 support
arm64: allwinner: a64: add proper support for the Wi-Fi on BPi M64
arm64: allwinner: a64: enable AXP803 for Banana Pi M64
arm64: allwinner: a64: enable USB host controller for BPi M64
Enable X-Powers AXP series PMIC mfd and regulator support by default.
-----BEGIN PGP SIGNATURE-----
iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmXt7cOHHdlbnNAY3Np
ZS5vcmcACgkQOJpUIZwPJDCd+xAAiOocrqSB4Lvh3I/s32ooWAT7YhR0gKvVwBkO
wH5C3Le/AT5T8glLj12/GFCYcd8XZWJWqWAWvrOnPQiDlsnbMulr/lVkJD1FS202
l4MfV05ulHhXyABXzbL6d0gUMTR+eHVS1T3c5e2seJfTwLCCZZGsJKBoVcRB77r9
OjBhPkfvnEqhitaTMQ4S8czwuWF4xlfmWoFRl6AkfXDyrnUKC2rx5klT+JFJTJ6P
Sj1ulpio+pLWF+Y1fC2fzwC/mw7qrYY/Dx6ZJNBVaFBVJgntHKT7nVsDHbifTCOG
B1/Y8GLhvAvmA4xS6fVGujSZEzk3ejCPbcLsLeYUIFCG339gXtby9yQH7jkV2RYA
IdcwiqlzQYxabupIpbkRCd/fSCWIkvN0yv4YeUSXCYtdlpJtpIFrRvKdea+FCsNK
FjKWlD3dzaBtpz0vqEviz5Ipn5qCaP+7GI9wyYldNKKRSSDZAWuNVr27sExNtOZ6
mMesxFOrx0N+UormN4Q8lB8wyGjUuGDQm8Mfhts8DicKr3MjcxEWTbq/sgt3Vfqj
f/GONjbohd7vBYQWU3C5UdHGugRUwaSpyJpj1RnxDriXBekCwSpaTLohud+KxXBc
4/mhPYCLz/x9GpPQnnJYnlXno8+1WcqzntElWBOjEMCtD/0UtpKcbP3Thta6rJHO
5Q1SxCM=
=Xxj3
-----END PGP SIGNATURE-----
Merge tag 'sunxi-config64-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/arm64
Pull "Allwinner arm64 defconfig changes for 4.14" from Chen-Yu Tsai:
Enable X-Powers AXP series PMIC mfd and regulator support by default.
* tag 'sunxi-config64-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
arm64: defconfig: Enable REGULATOR_AXP20X
arm64: defconfig: Enable MFD_AXP20X_RSB
Pull timer fixes from Thomas Gleixner:
"A few small fixes for timer drivers:
- Prevent infinite recursion in the arm architected timer driver with
ftrace
- Propagate error codes to the caller in case of failure in EM STI
driver
- Adjust a bogus loop iteration in the arm architected timer driver
- Add a missing Kconfig dependency to the pistachio clocksource to
prevent build failures
- Correctly check for IS_ERR() instead of NULL in the shared timer-of
code"
* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
clocksource/drivers/arm_arch_timer: Avoid infinite recursion when ftrace is enabled
clocksource/drivers/Kconfig: Fix CLKSRC_PISTACHIO dependencies
clocksource/drivers/timer-of: Checking for IS_ERR() instead of NULL
clocksource/drivers/em_sti: Fix error return codes in em_sti_probe()
clocksource/drivers/arm_arch_timer: Fix mem frame loop initialization
Currently we are assigning mic irq to rt5514 i2c driver, which is wrong.
Assign it to rt5514 spi driver instead.
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
We need to init vop aclk and hclk incase the U-Boot does not do
the initialize.
Signed-off-by: Kever Yang <kever.yang@rock-chips.com>
Reviewed-by: Mark Yao <mark.yao@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
There are 4 pwm channels built in rk3328 soc, need to configure
the both APB clock and bus clock.
Signed-off-by: David Wu <david.wu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
According to rt5514 dt-binding, it should be "realtek,dmic-init-delay-ms".
Fixes: 48f4d9796d (arm64: dts: rockchip: add Gru/Kevin DTS)
Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Moving the x86_64 and arm64 PIE base from 0x555555554000 to 0x000100000000
broke AddressSanitizer. This is a partial revert of:
eab09532d4 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
02445990a9 ("arm64: move ELF_ET_DYN_BASE to 4GB / 4MB")
The AddressSanitizer tool has hard-coded expectations about where
executable mappings are loaded.
The motivation for changing the PIE base in the above commits was to
avoid the Stack-Clash CVEs that allowed executable mappings to get too
close to heap and stack. This was mainly a problem on 32-bit, but the
64-bit bases were moved too, in an effort to proactively protect those
systems (proofs of concept do exist that show 64-bit collisions, but
other recent changes to fix stack accounting and setuid behaviors will
minimize the impact).
The new 32-bit PIE base is fine for ASan (since it matches the ET_EXEC
base), so only the 64-bit PIE base needs to be reverted to let x86 and
arm64 ASan binaries run again. Future changes to the 64-bit PIE base on
these architectures can be made optional once a more dynamic method for
dealing with AddressSanitizer is found. (e.g. always loading PIE into
the mmap region for marked binaries.)
Link: http://lkml.kernel.org/r/20170807201542.GA21271@beast
Fixes: eab09532d4 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE")
Fixes: 02445990a9 ("arm64: move ELF_ET_DYN_BASE to 4GB / 4MB")
Signed-off-by: Kees Cook <keescook@chromium.org>
Reported-by: Kostya Serebryany <kcc@google.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
- Select PINCTRL for ZTE platform, so that pinctrl driver for ZX296718
can be enabled.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJZlpAcAAoJEFBXWFqHsHzOsIUIAJ1AonMc+E4nx4Y1TC02QCxL
I0ddb8fZRYhttW/o/6bkSAi1kxeaR2c1KfgtshgRRTQbs3+PFIu5TNDtIlSKhaAy
aDeTLqJCBdqxHk6e3dqAuOWY+3g/3cIgx8UYxHf49l5D5AwjHIb3y3x+GkC9Ne27
nsTFDWiJx05eZ01oT6w6FbXjFjR7FgUx5ckONIoE6Xpts4NccUh5cgyh7yTk77GP
Nu49eur9zBX4Dp3VeeKeuQouxXFfsCblqd1Yl2bHzNdqIfokxockIl+45u/uu49b
eltyVBDDWLdCGf/s+SZtnHyKUOXrjMaTuXiOUshTWv0tn3r3Q5EhWyLh1TullAE=
=hSae
-----END PGP SIGNATURE-----
Merge tag 'zte-soc-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/arm64
Pull "ZTE SoC updates for 4.14" from Shawn Guo:
- Select PINCTRL for ZTE platform, so that pinctrl driver for ZX296718
can be enabled.
* tag 'zte-soc-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
arm64: select PINCTRL for ZTE platform
SoCs for 4.14, please pull the following:
- Markus enables the Broadcom STB AVS thermal monitoring driver as a module
which is currently queued in Rui Zhang's tree
-----BEGIN PGP SIGNATURE-----
iQIcBAABCAAGBQJZldFbAAoJEIfQlpxEBwcEZQcP/2XN6xFj3M+O2Ynl9IQmy30L
E7liU0F+I2jjl8oFlZs2MtHykKYPvcInMPCuA0AsImJRVfabFEZVG6/vE1IVkOt/
YCVcnxuA22HHjY+XJdRqL8WbvaHl9EqRaZApAs0XNiZzBTSkG56aYkT/HehdAh19
OaX0zpBHY4xS3D0UTQzorlQbpH572nqPZeG2QBNLGrJ/+N7gv1+2SXxIyRPPgJKg
cCLJH2FQqkJBfKL0U+mfDNhJGHeOvg67gcScDIbV6kyhTUqldyWeNt3gcGtjKUZa
/2wcsC/0mXnXAfi9xt4ocU4hs6+HrihDG1wkxCVs21FTS6h7Hh1tTst0+I3oO29Z
Uo0Ktg3RNfKglylSSKxJYtz0pyKz3lhjq9iJzWSZxR5LoFDPuBMgGlall1xDF3LV
IEkmYw9kMRCJ6MQQvrRWRaVnr4YW6k5aI99rh19wzKYCNqvq1TyEO60EDY4S+/Xv
986unwlKpQvA/xAX7Na6B03M1MGSK1uTN6FTJdVR3yrprMafjs7JpVceAQojOwAP
6BS4tXkyxJ3QtYtHFfbWWzrv3W4FxkmFb5vgDMUGTDTuI4rtnTVPfVoBrb5niAKA
Q1DIOxfxCpgXjAho/8dTcnFyG5AyekzZULHcl2T/3+dV1EQLhpyAPlvlw0Aylxz4
0Pou+My6cZnyZF58liR2
=xrY6
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-4.14/defconfig-arm64' of http://github.com/Broadcom/stblinux into next/arm64
Pull "Broadcom defconfig-arm64 changes for 4.14" from Florian Fainelli:
This pull request contains ARM64 defconfig changes for Broadcom ARM64-based
SoCs for 4.14, please pull the following:
- Markus enables the Broadcom STB AVS thermal monitoring driver as a module
which is currently queued in Rui Zhang's tree
* tag 'arm-soc/for-4.14/defconfig-arm64' of http://github.com/Broadcom/stblinux:
arm64: defconfig: add CONFIG_BRCMSTB_THERMAL
- Enable uSD on ESPRESSObin (Armada 37xx based board)
- Add NAND support on Armada 7K/8K SoCs
- Enable USB host on Armada-7040-DB and Armada-8040-DB boards
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlmWtIYACgkQCwYYjhRyO9V67ACfUFPrkPl8Qn34OAjklU+hVPR9
YJIAn0EI8S47gAuQe0bzEmU45qALL/Xv
=Vf0A
-----END PGP SIGNATURE-----
Merge tag 'mvebu-dt64-4.14-2' of git://git.infradead.org/linux-mvebu into next/dt64
Pull "mvebu dt64 for 4.14 (part 2)" from Gregory CLEMENT:
- Enable uSD on ESPRESSObin (Armada 37xx based board)
- Add NAND support on Armada 7K/8K SoCs
- Enable USB host on Armada-7040-DB and Armada-8040-DB boards
* tag 'mvebu-dt64-4.14-2' of git://git.infradead.org/linux-mvebu:
ARM64: dts: marvell: enable USB host on Armada-8040-DB
ARM64: dts: marvell: enable USB host on Armada-7040-DB
ARM64: dts: marvell: add NAND support on the CP110
ARM64: dts: marvell: armada-37xx: Enable uSD on ESPRESSObin
arm64: dts: marvell: Fully re-order nodes in Marvell CP110 dtsi files
* Add PFC device node to R-Car D3 (r8a77995)
This is a step towards enabling devices that use multiplexed pins
- including ethernet - on boards that use the r8a7796 SoC.
* Add USB nodes to R-Car M3-W (r8a7796)
This is a step towards enabling USB devices on boards that
use the r8a7796 SoC.
* Use newly added Gen-3 fallback compat string
This is consistent with ongoing efforts to use per-generation
fallback strings where appropriate across devices found
on R-Car SoCs. The aim of the effort being to strike a balance
between the limited information available about the compatibility
of devices found on different SoCs and the desire to ease enabling
devices on new SoCs.
This has no run-time effect due to the presence of a per-SoC
compat string.
* Cleanup whitespace and extra LVDS port label
Minor cleanups, no run-time effect.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZlV36AAoJENfPZGlqN0++cwMQAIieFfQzDET0/2dGSWB6oDAt
fSCCHh4l6B5vufUyhV4rDjm8drKgT5sMTkAYh4Y1oq69NV3BFnFb0gr3BY58Qwyv
yz4s2o3UNShVcCuSK8rJaMdr8BOBmKoS2WBMjIOBO+znfhfP1zCbBgDNIanSGMY2
8fmBBB3CF76NM0Juh5FmD1bUsxvzX3ZboyWxQY9u5aIrvcvhau4dcifkKJpcp5gT
b/0z0Vi2ZraPE1JOlIHghc0ph10TYVl1pYINgWhhtybNSd9D2TXgGFfn5XZkdk2+
+Az+mookjAsXIm7hj/3la1KflnT67oWNb6rJkz3TWHkNSFW0AbZb0iEnzP02mIMX
6DsUW8jaAxxviMavLB8+Qi5UMM4q7PY78AWB4VA4etkQf5GL/98Lr/jLayd4vyOt
tJLeE+c89J+eEbql4UfrTl/fdUIjJzH5P9RMG/DUpqAZpw8GlFjx5ZttPKOMUU7V
dN5wuG+ujneedn6Kb0RHeI09/q4MVPcEjxbOGq/Xqljp1wYPf44tkDkBd9ecs047
A9fXEuv3qgU5N8iNyT31nudzNbDTIfDYFg7XBcX5pY7BAnXKbTvfl1mFzHyX9Pm8
GBGFndOrX4b9aPj3JqXMldQOVpKT5YMyFbA2vl4Z1bbqFqE3cdgHSEp5NcC93qRv
1colO4fJ/JaDLKsP5dfH
=6XqO
-----END PGP SIGNATURE-----
Merge tag 'renesas-arm64-dt2-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64
Pull "Second Round of Renesas ARM64 Based SoC DT Updates for v4.14" from Simon Horman:
* Add PFC device node to R-Car D3 (r8a77995)
This is a step towards enabling devices that use multiplexed pins
- including ethernet - on boards that use the r8a7796 SoC.
* Add USB nodes to R-Car M3-W (r8a7796)
This is a step towards enabling USB devices on boards that
use the r8a7796 SoC.
* Use newly added Gen-3 fallback compat string
This is consistent with ongoing efforts to use per-generation
fallback strings where appropriate across devices found
on R-Car SoCs. The aim of the effort being to strike a balance
between the limited information available about the compatibility
of devices found on different SoCs and the desire to ease enabling
devices on new SoCs.
This has no run-time effect due to the presence of a per-SoC
compat string.
* Cleanup whitespace and extra LVDS port label
Minor cleanups, no run-time effect.
* tag 'renesas-arm64-dt2-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
arm64: dts: r8a77995: add pfc device node
arm64: dts: r8a7796: Add HSUSB device node
arm64: dts: r8a7796: Add USB-DMAC device nodes
arm64: dts: r8a7796: Add USB3.0 host device node
arm64: dts: r8a7796: add USB2.0 Host (EHCI/OHCI) device nodes
arm64: dts: r8a7796: add usb2_phy device nodes
arm64: dts: r8a7795: correct whitespace of companion property
arm64: dts: r8a7795: Use R-Car SATA Gen3 fallback compat string
arm64: dts: salvator-common: Remove extra LVDS port label
* Add IPQ8074 SoC and HK01 board support
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZl1PKAAoJEFKiBbHx2RXVq40QAIoFRYmWBywq/UquEf0qH6UF
y7Y0Ig7ba6lXLhKJlUx8bQYXtU97CLDuJXw9pIvh8IxPZmYKWQd9zG3FfZZIaRSf
/zN9SDBZV7Q8JyZXL7u1GCxFC4bouhc6L9n8ttYUGjeiYh4Xq2ZqwOL+YAQhnSQn
UuYS3eb21/0rCZmWzkdOU7rYSutkhhaCtRWh9QcndZKoOquvnvQgWlVkOELnTbND
4kc2txOJ8juRnzwpvlfYsOnFet4XQC/RCz1vGSgu3ljXCC5rTYMKd7AstHnsAc2x
NNJCyi0fdMEbPSAvI3nK7fFinS8rppKfNmAG4T4UjmAtu19wCKmlPblRYhIgZwk9
YngZh2FbHLSdV/rDJG4E6UoktvV+PeRlajTZofT0su4wLJPxFiTTZWlOPmg/Y9Gf
dVBw+FRFJRj2L4gu5n+8pKvsQsc9zAv1h+YMJoVRv8Zz45M9QoihPMapAjwDu2hz
PtCSjKO9ebnl6J8GpI3FaKtzjywLCG12/xp+6NUmSa8lz6sxkTPFwcgRU4Dm+bj6
xa8Tt63lz/rEfuOBj/+niadSh/mATEiOvUlt0AEVNt/JfjOIxq/s0FDpGwYzJRFE
z63TvqNZ7V+irEweJPmkyvMR2huqYHo32FqGkXkZQIIyUHzEnnQJWJn3D1wmhYWX
btJBe1OV0SKm9+xc8XwY
=JCl4
-----END PGP SIGNATURE-----
Merge tag 'qcom-arm64-for-4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt64
Pull "Qualcomm ARM64 Updates for v4.14 Part 2" from Andy Gross:
* Add IPQ8074 SoC and HK01 board support
* tag 'qcom-arm64-for-4.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
arm64: dts: Add ipq8074 SoC and HK01 board support
4.14, please pull the following:
- Eric moves the bcm2837 DT file from arm64 to arm because it created a maintenance
problem and would have required either duplication or cross merges
- Stefan changes how the pinmuxing is defined and pushes it at the board level
to support Raspberry Pi Zero Wireless. He then adds supports for the actual
Raspberry Pi Zero Wireless board along with binding documentation. Stefan
also defines a proper SMP enable-method property and binding for BCM2836
(Raspbery Pi 2)
- Rafal describes the BCM5301X USB ports correctly in Device Tree such that
it becomes possible to assign them to specific LED triggers (e.g: USB activity).
He does the same thing for BCM53573 and defines default LED triggers for USB.
- Jon provides a fix for Northstar Plus which consists in correctly defining
the "dma-coherent" property for peripherals which are DMA coherent. He also
does a bit of re-arrangement of the USB DT nodes and finally adds USB 3 PHY
and host controller support for NorthStar Plus
- Florian adds support for Broadcom's BCM947189ACDBMR reference board which is
based on BCM47182/53573 and which supports external MoCA (BCM6802)
- Ray fixes the wrong UART2 base address for Cygnus
- Scott moves the v3d node in the proper unit address order and defines the correct
UART alias for the BCM91130_entphn reference board to be UART3
- Jason adds the DT node for the Cygnus Cortex-A9 Performance Monitoring Unit
- Jonathan adds a bunch of additional peripherals to the Cygnus DTS include file:
SDHCI, Keypad, SPI, DMA and pinmux configurations
- Raveendra adds the Cygnus OHCI and EHCI Device Tree nodes
-----BEGIN PGP SIGNATURE-----
iQIcBAABCAAGBQJZldUgAAoJEIfQlpxEBwcEUIgQAIdyDJn+q+mxVhtY8m5xd7ru
+pnSvzJoL0nNUALPez4SGRBSBsv8oH3zO77aLQcPEcy1W+FCvjGI3eh22bm5PkOO
UASbrw5c5RfwYI/fVVkTqoZT3d4Xo4ZXTe+ML0wVS7x9Hw8ozQPBCc5hRJ7PQYaO
U1Ttvpud354xgCFXnvtadDwwTa2W9MdPtsTkrk42Q+p06KZTlONUslAL+DI1RlUw
Zf81r/93YzmEbsPpnG4nlW1dJTTILPE7AFQfJQ47Fg+aJ/suhYMlEH2EvxqgXhh0
FzAWd0Zo1p83chArSQdKGEkS+RvSGuSX1D1n1ZVMO2NJZd3RSqLVy6zUB38f+5Eu
0nOxwxWaG/isyGJ9DtMSyM7ZdgZhYSEI847DC3zOah3/kNquF/NmFFUOPzW79D53
WJ/qvjxYZ9fcy3p2W3Vk8LSNiBeiQGQ+zodpRjTrHIBocqQUf2yxSeepGV9zeHk8
ZwwUmtSE/qZd+MAqiki1DdUIWqHvkvOx0BbYZHLqA3ND2Vz6n6hVvMMMDo2+TyN7
WNhOdrM7Gwt+LNYyW6Gjrvxe5wIYn6Gw3+wPbxTSZH7lBbBC/c56cR0V3nJkpuiS
C5OwCx1Miocz61GPjKtkaYat3cnRum96X5hsadTLJ/cNscNKdIXqUkPtZ6jLs7VI
SbSQS4Im7fdGaGeRRsj1
=WUr3
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-4.14/devicetree' of http://github.com/Broadcom/stblinux into next/dt
Pull "Broadcom devicetree changes for 4.14" from Florian Fainelli:
This pull request contains Broadcom ARM-based SoCs Device Tree changes for
4.14, please pull the following:
- Eric moves the bcm2837 DT file from arm64 to arm because it created a maintenance
problem and would have required either duplication or cross merges
- Stefan changes how the pinmuxing is defined and pushes it at the board level
to support Raspberry Pi Zero Wireless. He then adds supports for the actual
Raspberry Pi Zero Wireless board along with binding documentation. Stefan
also defines a proper SMP enable-method property and binding for BCM2836
(Raspbery Pi 2)
- Rafal describes the BCM5301X USB ports correctly in Device Tree such that
it becomes possible to assign them to specific LED triggers (e.g: USB activity).
He does the same thing for BCM53573 and defines default LED triggers for USB.
- Jon provides a fix for Northstar Plus which consists in correctly defining
the "dma-coherent" property for peripherals which are DMA coherent. He also
does a bit of re-arrangement of the USB DT nodes and finally adds USB 3 PHY
and host controller support for NorthStar Plus
- Florian adds support for Broadcom's BCM947189ACDBMR reference board which is
based on BCM47182/53573 and which supports external MoCA (BCM6802)
- Ray fixes the wrong UART2 base address for Cygnus
- Scott moves the v3d node in the proper unit address order and defines the correct
UART alias for the BCM91130_entphn reference board to be UART3
- Jason adds the DT node for the Cygnus Cortex-A9 Performance Monitoring Unit
- Jonathan adds a bunch of additional peripherals to the Cygnus DTS include file:
SDHCI, Keypad, SPI, DMA and pinmux configurations
- Raveendra adds the Cygnus OHCI and EHCI Device Tree nodes
* tag 'arm-soc/for-4.14/devicetree' of http://github.com/Broadcom/stblinux:
ARM: BCM53573: Specify ports for USB LED for Tenda AC9
ARM: dts: cygnus: Add generic-ehci/ohci nodes
ARM: dts: cygnus: add serial0 alias for uart3 on bcm91130_entphn
ARM: dts: cygnus: Add additional peripherals to dtsi
ARM: dts: cygnus: Enable Performance Monitoring Unit
ARM: dts: cygnus: place v3d in proper address ordered location
ARM: dts: cygnus: Fix incorrect UART2 register base
ARM: dts: bcm283x: Add 32-bit enable method for SMP
dt-bindings: arm: add SMP enable-method for BCM2836
ARM: dts: BCM53573: Add Broadcom BCM947189ACDBMR board support
ARM: dts: BCM5301X: Specify USB ports for USB LEDs of few devices
ARM: dts: NSP: Add USB3 and USB3 PHY to NSP
ARM: dts: NSP: Rearrage USB entries
ARM: dts: NSP: Add dma-coherent to relevant DT entries
ARM: dts: bcm2835: Add Raspberry Pi Zero W
dt-bindings: bcm: Add Raspberry Pi Zero W
ARM: bcm283x: Define UART pinmuxing on board level
ARM: dts: BCM5301X: Specify USB ports for each controller
ARM: dts: bcm283x: Move the BCM2837 DT contents from arm64 to arm.
These configs are required for booting kernel in QCOM
IPQ8074 boards.
Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
Signed-off-by: Varadarajan Narayanan <varada@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
- A clean up patch from Shawn Lin to remove the deprecated dwmmc
property 'num-slots' from ZX296718 device tree.
- Enable various devices for ZX296718 SoC support, VGA display, I2S
audio, pinctrl, GPIO, PWM and IRDEC.
- Update zx296718-evb support to use audio-graph-card for HDMI audio
and add I2S sound card.
- Add initial zx296718-pcbox board support with storage, audio,
display devices enabled.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJZlo4KAAoJEFBXWFqHsHzOee0H/RcMMznh0cKg8UjjlbAuhArW
4IxmA05TzYBN0VeLNwAzPMn3yrbSZPk5bm7MD/+csv6NuFF2NDlvshyAqWAYueaY
cLXnQvqE3axK5X9xkfQYKvk0OHhj/xIKzEdnJ3++EwEtnibUEl9g8kunopzTQOaq
BsOFTTfuey98hCg4WQSpGIqRhfpKXt/UV63e93TuPs1g0/fpmoooMTQdUE+Wmctq
y1JJb3OC5HMp/NkQRJobmUa2r6R+3T8gmvgFopoBVP543zR5kwJ7bCDXgkzZwIbV
jtLDVCfg+DAapSFpCbULkvOMMZo/rxjAFxP2b8ICFCzNC9zgWpoSAN8ut1Oznk0=
=hAsg
-----END PGP SIGNATURE-----
Merge tag 'zte-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt64
Pull "ZTE arm64 device tree updates for 4.14" from Shawn Guo:
- A clean up patch from Shawn Lin to remove the deprecated dwmmc
property 'num-slots' from ZX296718 device tree.
- Enable various devices for ZX296718 SoC support, VGA display, I2S
audio, pinctrl, GPIO, PWM and IRDEC.
- Update zx296718-evb support to use audio-graph-card for HDMI audio
and add I2S sound card.
- Add initial zx296718-pcbox board support with storage, audio,
display devices enabled.
* tag 'zte-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
arm64: dts: zte: add initial zx296718-pcbox board support
arm64: dts: zx296718-evb: add I2S sound card support
arm64: dts: zx296718-evb: use audio-graph-card for HDMI audio
arm64: dts: zx296718: add irdec device for remote control
arm64: dts: zx296718: add PWM device support
arm64: dts: zx296718: add voltage data into OPP table
arm64: dts: zx296718: set a better parent clock for I2S0
arm64: dts: zx296718: add pinctrl and gpio devices
arm64: dts: zx296718: add I2S and I2C audio codec
arm64: dts: zx296718: add VGA device support
arm64: dts: zte: remove num-slots from zx296718
- Correct the typo in fsl-ls1088a-rdb board name.
- A series from Horia Geantă to consolidate aliases node and enable
crypto support for ls208xa and ls1088a.
- Enable USB host support for ls1012a.
- Enable cpuidle support for ls1088a and ls208xa.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAABAgAGBQJZlodKAAoJEFBXWFqHsHzOLYAIAIs6YEEhjbJiet6EMmwpneJo
hTGcU/Gv6q6ozF3uV1+oMqnv64rlzwPR8jTjt29+lCS2I4/zv7Zfr83GR1iMtW90
hIKUMnWwX/ATY1BC4YB36E0Z0WRolNoKU6iKBujMsfxPFRBXulEQwngZoFS5EvHy
TDqCTTRHBHhnzPqMPSJ3q/3r6VPTHDtj1ap+zF8EsS156ybPHhajHm/+u3Kvh6Kh
MnI+Y/SHPFCmy2Pj34SsixGKBEwAukyeddbufUlnrP3wcDnIvv64SWURCsBygEww
jhAD8rYWCFyhqM4vBbQ8AvXrKJkJDZETRy1GTTwDK2MjWeIzY6JtZ+cOGtyBTwU=
=6GLX
-----END PGP SIGNATURE-----
Merge tag 'imx-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into next/dt64
Pull "Freescale arm64 device tree updates for 4.14" from Shawn Guo:
- Correct the typo in fsl-ls1088a-rdb board name.
- A series from Horia Geantă to consolidate aliases node and enable
crypto support for ls208xa and ls1088a.
- Enable USB host support for ls1012a.
- Enable cpuidle support for ls1088a and ls208xa.
* tag 'imx-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
arm64: dts: ls1088: Correction in Board name from "L1088A" to "LS1088A"
arm64: dts: ls208xa: add cpu idle support
arm64: dts: ls1088a: add cpu idle support
arm64: dts: freescale: ls1088a: add crypto node
arm64: dts: freescale: ls208xa: add crypto node
arm64: dts: freescale: ls208xa: share aliases node
arm64: dts: ls1012a: add USB host controller nodes
4.14, please pull the following:
- Scott moves all the Northstar 2 DTS files into a sub-directory to be consistent
with what was done for stingray and to future proof the addition of new board
DTS files
- Velibor adds the ARM CCN-502 interconnect DT node to the Stingray SoC
DTS include file
- Srinath adds the MDIO multiplexer and SATA nodes to the Stingray DTS
include files
- Anup adds the SP804 timers, FlexRM (mailbox) and RAID engine DT nodes
to the Stingray DTS include files
- Abishek adds the BGMAC (Ethernet controller) node to the Stingray DTS
files
-----BEGIN PGP SIGNATURE-----
iQIcBAABCAAGBQJZldDiAAoJEIfQlpxEBwcEez0P+gPrCZ+Qr8/oXF6Ho8iLlvCM
jjj6bfQduQRCe3Gc03Z/+rERyEsOKaDA9JKkCY5aBf7mvcCtKGSqjXV3TwugOEnV
tgMytTBZvhfQcXCN4fIsCMFPB9OVSThV6x9ZObF3vuiMBDVM5t8+t0dCwuCKv/XJ
0+Dw+TRaXcwu6X9hY8ulgyI9LcnnYQHY3FZ7IzkU+KyCu4wJlCK9mDdPW07+vyl9
iEC6tXJ2/cn4uPllRuj4hT9O+QAKnjxhoj+ngkO5fc+QprmQV/q+GfILVXqW6uEG
09Ed15EVsws9mf5YciyeIhBTjvGF6YtKrzOgl29AzUnrX2XYxV7ZfD8PSfnmK/lN
WDynU9Rz609582q/oCw4rftYhWzVBQP9BjcC7PH5nSDLc+r2bU/V66Hg3NB0kAGq
x90ug7x3Tddph2d9C9RaoFJ3yx0A9tgspflLlueW0c+rSQq75ysphTH7y3y2QBw9
4mbwKIK1i7LtbB0k7eweinlh+8OyrCRMbF6CREH738EKAP/I2kDHIoqIm8llOr41
9quyBR6MIyw8rvINRr1eT0eQ+sEHzyM9Trvne2FoTXKNA9GsDnwsxzjXceliiVJm
FQjg79HQ3WH1PJ5+cu/+i6qZWDnS/UlnRmIPholO4GQ4bRok/sRCzkwVAgU69A/k
F35MH4K9X3nTKLan2UyP
=0wLC
-----END PGP SIGNATURE-----
Merge tag 'arm-soc/for-4.14/devicetree-arm64' of http://github.com/Broadcom/stblinux into next/dt64
Pull "Broadcom devicetree-arm64 changes for 4.14" from Florian Fainelli:
This pull request contains Broadcom ARM64-based SoCs Device Tree changes for
4.14, please pull the following:
- Scott moves all the Northstar 2 DTS files into a sub-directory to be consistent
with what was done for stingray and to future proof the addition of new board
DTS files
- Velibor adds the ARM CCN-502 interconnect DT node to the Stingray SoC
DTS include file
- Srinath adds the MDIO multiplexer and SATA nodes to the Stingray DTS
include files
- Anup adds the SP804 timers, FlexRM (mailbox) and RAID engine DT nodes
to the Stingray DTS include files
- Abishek adds the BGMAC (Ethernet controller) node to the Stingray DTS
files
* tag 'arm-soc/for-4.14/devicetree-arm64' of http://github.com/Broadcom/stblinux:
arm64: dts: Add SBA-RAID DT nodes for Stingray SoC
arm64: dts: Add FlexRM DT nodes for Stingray
arm64: dts: Add SATA DT nodes for Stingray SoC
arm64: dts: Add DT node to enable BGMAC driver on Stingray
arm64: dts: Add sp804 DT nodes for Stingray SoC
arm64: dts: Add MDIO multiplexer DT node for Stingray
arm64: dts: Enable stats for CCN-502 interconnect on Stingray
arm64: dts: move ns2 into northstar2 directory
* 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux:
arm64: perf: add support for Cortex-A35
arm64: perf: add support for Cortex-A73
arm64: perf: Remove redundant entries from CPU-specific event maps
arm64: perf: Connect additional events to pmu counters
arm64: perf: Allow standard PMUv3 events to be extended by the CPU type
perf: xgene: Remove unnecessary managed resources cleanup
arm64: perf: Allow more than one cycle counter to be used
The percpu variables efi_fpsimd_state and efi_fpsimd_state_used,
used by the FPSIMD save/restore routines for EFI calls, are
unintentionally global.
There's no reason for anything outside fpsimd.c to touch these, so
this patch makes them static (as they should have been in the first
place).
Signed-off-by: Dave Martin <Dave.Martin@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Three fixes adding a missing alias for the Ethernet controller on A64
boards. One adding a missing interrupt for the pin controller.
-----BEGIN PGP SIGNATURE-----
iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmWY8IOHHdlbnNAY3Np
ZS5vcmcACgkQOJpUIZwPJDCarBAA5ZLXl9Zp/JugO0JNuCyJpY3Z418hMMieqJ/P
k2iTdnxSZ3ZhZGqDy/yJtEVS4T1jEe3r+VumUqQI81u6LTKcSCTgngBp0X4pDjKP
VrPuvJZnaIQXGyxD+WRjeEZ9LwfU1KKwmkNF8ASnx53OyXF/qghl1OcCjV9nTfh8
HcMBuSK/qqEQ1LoF2gyM1XXHkSD1jSoA/Nzwxgp8ivSlRGzuwbHO0fv42eQfgI7h
D1Ufz3bAHh58YcarHMp53+6mMcaYNyTYwAzMH6/IAxwQ6CSSN6ZOsoe17+agEmoX
65pQJWeVx+i4n8WtGPX0uWcz9K/jKyXEdpCLY85ZYHZKTabb6ZTuhMkYyOvXzhMD
EvSas/dB6nhForHSPHVRYsS9zlwpwO5+LSAufYET0u/ec9RYL3S1f7JHNzYuLvgJ
/W5EEu063XyrTEF5/xEv7FEd30J2k9418dCPyjXknuDdXbq1/TFAX/fwW+9I/I6W
oguQbbuO7Op/LClVk15nPLIsdLwv2+QMbuWoqfqtK767x+cEpSYT2KY+s2OUjL8Y
m7baoPpbAFPWq34ZtWCQzXH3pQ1ghgvnDRVfsskCpNpC3uB0C7Y+/lexRHd2A1j4
ADf4k3jg2ybFUqADwHnCg7A+/wKCMDgIPLAfWgumgefUnZT0+YT7bP3xINks6/wi
eguEAXA=
=lSDD
-----END PGP SIGNATURE-----
Merge tag 'sunxi-fixes-for-4.13-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into fixes
Pull "Allwinner fixes for 4.13, round 2" from Chen-Yu Tsai:
Three fixes adding a missing alias for the Ethernet controller on A64
boards. One adding a missing interrupt for the pin controller.
* tag 'sunxi-fixes-for-4.13-2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
arm64: allwinner: h5: fix pinctrl IRQs
arm64: allwinner: a64: sopine: add missing ethernet0 alias
arm64: allwinner: a64: pine64: add missing ethernet0 alias
arm64: allwinner: a64: bananapi-m64: add missing ethernet0 alias
RK3399 USB DWC3 controller has a issue that FS/LS devices not
recognized if inserted through USB 3.0 HUB. It's because that
the inter-packet delay between the SSPLIT token to SETUP token
is about 566ns, more then the USB spec requirement.
This patch adds a quirk "snps,dis-tx-ipgap-linecheck-quirk" to
disable the u2mac linestate check to decrease the SSPLIT token
to SETUP token inter-packet delay from 566ns to 466ns.
Signed-off-by: William Wu <william.wu@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
There is no agreed-upon definition of spin_unlock_wait()'s semantics,
and it appears that all callers could do just as well with a lock/unlock
pair. This commit therefore removes the underlying arch-specific
arch_spin_unlock_wait() for all architectures providing them.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: <linux-arch@vger.kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Andrea Parri <parri.andrea@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Boqun Feng <boqun.feng@gmail.com>
Implement MEMBARRIER_CMD_PRIVATE_EXPEDITED with IPIs using cpumask built
from all runqueues for which current thread's mm is the same as the
thread calling sys_membarrier. It executes faster than the non-expedited
variant (no blocking). It also works on NOHZ_FULL configurations.
Scheduler-wise, it requires a memory barrier before and after context
switching between processes (which have different mm). The memory
barrier before context switch is already present. For the barrier after
context switch:
* Our TSO archs can do RELEASE without being a full barrier. Look at
x86 spin_unlock() being a regular STORE for example. But for those
archs, all atomics imply smp_mb and all of them have atomic ops in
switch_mm() for mm_cpumask(), and on x86 the CR3 load acts as a full
barrier.
* From all weakly ordered machines, only ARM64 and PPC can do RELEASE,
the rest does indeed do smp_mb(), so there the spin_unlock() is a full
barrier and we're good.
* ARM64 has a very heavy barrier in switch_to(), which suffices.
* PPC just removed its barrier from switch_to(), but appears to be
talking about adding something to switch_mm(). So add a
smp_mb__after_unlock_lock() for now, until this is settled on the PPC
side.
Changes since v3:
- Properly document the memory barriers provided by each architecture.
Changes since v2:
- Address comments from Peter Zijlstra,
- Add smp_mb__after_unlock_lock() after finish_lock_switch() in
finish_task_switch() to add the memory barrier we need after storing
to rq->curr. This is much simpler than the previous approach relying
on atomic_dec_and_test() in mmdrop(), which actually added a memory
barrier in the common case of switching between userspace processes.
- Return -EINVAL when MEMBARRIER_CMD_SHARED is used on a nohz_full
kernel, rather than having the whole membarrier system call returning
-ENOSYS. Indeed, CMD_PRIVATE_EXPEDITED is compatible with nohz_full.
Adapt the CMD_QUERY mask accordingly.
Changes since v1:
- move membarrier code under kernel/sched/ because it uses the
scheduler runqueue,
- only add the barrier when we switch from a kernel thread. The case
where we switch from a user-space thread is already handled by
the atomic_dec_and_test() in mmdrop().
- add a comment to mmdrop() documenting the requirement on the implicit
memory barrier.
CC: Peter Zijlstra <peterz@infradead.org>
CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
CC: Boqun Feng <boqun.feng@gmail.com>
CC: Andrew Hunter <ahh@google.com>
CC: Maged Michael <maged.michael@gmail.com>
CC: gromer@google.com
CC: Avi Kivity <avi@scylladb.com>
CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
CC: Paul Mackerras <paulus@samba.org>
CC: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Tested-by: Dave Watson <davejwatson@fb.com>
After adding the clock subsystem to the SOC, the dummy
clock clk32k is not longer needed. Delete it.
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
Use newly added R-Car SATA Gen3 fallback compat string
in the DT of the r8a7795 SoC.
This should have no run-time effect as the driver matches against
the per-SoC compat string before the fallback compat string is considered.
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
The DU LVDS output is on port 3 on R8A7795 but on port 2 on R8A7796. The
lvds_connector label thus can't be defined in salvator-common.dtsi,
common to the two SoCs.
The lvds_connector label is meant for convenience to be referenced from
panel device tree files, such as r8a77xx-aa104xd12-panel.dtsi or
r8a77xx-aa121td01-panel.dtsi. As those files are not included in any
device tree source, and the label never used elsewhere, we can simply
remove it. Out-of-tree patches that include panel device tree files can
then add a
#define lvds_connector du_out_lvds0
before including the panel device tree file.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
* Avoid audio_clkout naming conflict for salvator boards using
Renesas R-Car Gen 3 SoCs
Morimoto-san says "The clock name of "audio_clkout" is used by the
Renesas sound driver. This duplicated naming breaks its clock
registering/unregistering. Especially when unbind/bind it can't handle
clkout correctly. This patch renames "audio_clkout" to "audio-clkout" to
avoid the naming conflict."
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZlVkYAAoJENfPZGlqN0++JKsP/i0hKyjgmvL983609fRwWcq9
i3nkGw+kxcv0ZBLSjWR++mPsQ3PPTgOk1MpJL3ioL8WZBuaTghCpsGrsVRnNViq8
RlDhShNPlvqcq9MOoAcc6rgqxron7P97Eykt1IXIDqgPlRNRRlSjil0MovLonzDW
S2T1W6gRjKKSOdPpZbXhxDeBwv2lEr7+688kU9ZTvzKN4KWdsShuuVSnW786wWgM
SJ8ZFzI5RzUsqcqvpeEWpe+z5eZo/GFDtmQ3E/ngCzrwbAwbVUeEXjvLLJF9oHSs
sMU66eOoU7erRqTe6KjpW+qIIRkaAR3rH5vVQB0tCJVl4kORWTVFcUGWiQ3ON3cP
wPrObeBCzzKamWoH6QJ7oWFvFYOVFOQtm3PaXBuSkWjlldLA9FdhLZJ1mYdrk5i6
PnIdvJGXRC0nH/+yJkbheG8FRNhz92eCG1u3gUBEGVKMwYDBWlztYVAI32MypKcm
+2xnR1Fs2uMzD/WxsM/PHaeU2LeTt/pnazgUInwnjDEFUR6fRP1MpkoFcspRk3Ix
QqF7HmLmn7ezho+Z+PXFYKPJvLHwTyHRI8TQtFzarFWXm+Y/ve5GVdbDLVkw31Aa
jy/w10dGmh9Q3z3sD2jhQKYuNVE0fhsZC1xkVCIodtYpyULfcLJvGJuUazlqpFZz
z3hXHslR7p1se40FdP6k
=meey
-----END PGP SIGNATURE-----
Merge tag 'renesas-fixes4-for-v4.13' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes
Pull "Fourth Round of Renesas ARM Based SoC Fixes for v4.13" from Simon Horman:
* Avoid audio_clkout naming conflict for salvator boards using
Renesas R-Car Gen 3 SoCs
Morimoto-san says "The clock name of "audio_clkout" is used by the
Renesas sound driver. This duplicated naming breaks its clock
registering/unregistering. Especially when unbind/bind it can't handle
clkout correctly. This patch renames "audio_clkout" to "audio-clkout" to
avoid the naming conflict."
* tag 'renesas-fixes4-for-v4.13' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
arm64: renesas: salvator-common: avoid audio_clkout naming conflict
1. Replaces old coresight ATB programmable replicator compatible with
new and more generic one
2. Replaces incorrect usage of underscores for device node names in the
device tree with hyphen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABCAAGBQJZjbz8AAoJEABBurwxfuKY+JkP/1xDAZBQHLGbr2p9x6Za/Ozs
N8+5p4o2c07K8Gc8YsmcruxtdrtXIgCZk2cp+m0jTaO6ox68TuMMwIF69BR12SaK
oqxxmk8VNSU5SaOr3KrdQDpGTFrBm9yq0PZkBtGyzlxeWgbSOLmcrFDP2jc9NbQ3
0fvKzybF/8VvzdaO9CNUO9oYXLZeZdLKAjcOIkaUWqVmX12/D+akTXEVt8eTgEik
w56qP4RYYOywb3v2qqyD+0oPB59pAjyjW/QOjokPCb8YLat3pR6VH9FKtmYr44hU
JpHw4bl/CdYSgS1e8ZT1RSy14GqcTOJ4yPJGgChPVWf//ue4impvAldR0tm9gOS6
ooc9PCsz22FxlfPAoNpG0TEvC/tzYYyiagBCb/hFQqnN/lqbVs9RcTG6lbyLb5KE
DnTPVNapt5Eqn74TBwUvr1J7z4q9LqyuhBNAl12QUeHtfTPp9KVrntiLadpYk5Lh
0qFavNAI9Q9FZRN11G0IuEMHm2PNl3XjEpQE/oVGHGTiHVmClIwiWOinMB9AmRrJ
K2XF/nKS6+/wqsWxezXO6RvJPkO1thkBpVkgImlPNRXY2FvzUSXeLu9c3ImL13K5
BsXAmuU4nnhH1Oe6WWFbhQ6lCitUAfq2l3HS+8SH0hPw2J8iMX6tNLAK+i3FQY5Z
LAvjk2l3n/QLkXnZA2CO
=jaSe
-----END PGP SIGNATURE-----
Merge tag 'juno-updates-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into next/dt64
Pull "ARMv8 Vexpress/Juno DT updates for v4.14" from Sudeep Holla:
1. Replaces old coresight ATB programmable replicator compatible with
new and more generic one
2. Replaces incorrect usage of underscores for device node names in the
device tree with hyphen
* tag 'juno-updates-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
arm64: dts: juno: replace underscores with hyphen in device node names
arm64: dts: juno: Use the new coresight replicator string
The usual improvement patches:
- R_INTC interrupt controller enabled for the A64 SoC
- AXP803 PMIC added and enabled on the Pine64 and SoPine boards
-----BEGIN PGP SIGNATURE-----
iQJCBAABCgAsFiEE2nN1m/hhnkhOWjtHOJpUIZwPJDAFAlmH2GYOHHdlbnNAY3Np
ZS5vcmcACgkQOJpUIZwPJDC7IhAAji5wcYjwiRSBD042AvatWWRvNKvzvtbcUxVZ
W1NmQBGfrFDDDZ2eipRfct/xGViAmnAPt2F5YnDY1CtcNOZDJOi1NmThC9qMUawO
qfIAIo7Ay59JehImq+cxzN0vovUKtNLxY8DDFRgqhNzCgooQN8a0an5Zv51BtQhP
wqAyJJDleS8OLLVHUZjQ/+cwFgQvt1mFp4ctkgK8vNsWjGjUYqIFzbxmQDmpi6WX
yvUQmyK9sB7tCC/UYaQKOuqNIiidsstRpKHAdPR7K3yJaSu5F4980cNGVizdP8Zv
9F2toU6gfzT8kXUUG7bC0Op+O+2bukFcbl/rDpjKGNQGMPZWtPIO+z+r6+Np60xm
zpyfJGI72oq0LrJwwHwFqYBecr/94ACf+IJf/arOhBflhQWndgLo0ZklfXIJu9do
FjLYaIR65ZP1A/d8HTIlJwI+FPqGV9gSLwyHSkud0CAe/EqugazXq4eWg19nG/e/
gplOr+pZQsmQeIbWFXDqi4wDyKnM5PAkaM9yMm6HXbEqa54a3peE73cZfDNHiA8n
ccg42U/p9sueX9+2lAoR0WamnvO6gP2RAF28Z2UN/oN5zz7gbLde+dBE0vAWKYQC
G1ECV04h7KjWQrZJHdKWVUSTsrZsImwG6looV4vhNPsu5uvQnegaudDNnDf0PBKV
VnXL6Uc=
=9oen
-----END PGP SIGNATURE-----
Merge tag 'sunxi-dt64-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into next/dt64
Pull "Allwinner arm64 DT changes for 4.14" from Chen-Yu Tsai:
The usual improvement patches:
- R_INTC interrupt controller enabled for the A64 SoC
- AXP803 PMIC added and enabled on the Pine64 and SoPine boards
* tag 'sunxi-dt64-for-4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
arm64: allwinner: a64: add AXP803 PMIC support to SoPine and the baseboard
arm64: allwinner: a64: enable AXP803 regulators for Pine64
arm64: allwinner: a64: add DTSI file for AXP803 PMIC
arm64: allwinner: a64: add AXP803 node to Pine64 device tree
arm64: allwinner: a64: add NMI (R_INTC) controller on A64
and the use of keep-power-in-suspend in non-sdio nodes as well as the
removal of the deprecated num-slots property from dwmmc nodes.
rk3328 gets support for spdif, io-domains and usb (including enablement
of usb on the evaluation board), while rk3368 gains support for spdif.
The biggest chunk of course aims for the rk3399 with a number of pcie
changes, support for the mali gpu, a new power-domain, sdmmc support
on the firefly board and dynamic-power-coefficients.
The gru family also gets support for their quite central pwm regulators
using the newly introduced vctrl regulator types.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAlmET9EQHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgZbjCACKFO9Hp8Xwwg2nEM8DL3i+MlGaqxjIrcsb
WskuVOJjkAA4hMnrd7XvbpzJJusAquGqMd042ZCWtrNa1AwzCy0ZkYjDFNL27rXH
DqrHmJZowSoTHxlo8QKaevXH3ZZnp8TDz4IqaD0+UZx7DgZSOjR1a+feseh1Jn/V
9WBUJhNAFtKMiJBkTIpaDUk0E6OxIspdvlJurYmwUvDbfZKlpZrXHYKXSuUhFS9s
JX4Dqi5eF96Mctpi8GhaHGf7awPQf4oQBZfsXxhhS/efzX/v0HWqUPt40o2THi0F
ZbFFE3xAFaWisA+cbg8xnzJc8ZAwz2UmS6FgQ9lrqKyGN74buwgP
=spNi
-----END PGP SIGNATURE-----
Merge tag 'v4.14-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into next/dt64
Pull "Rockchip dts64 changes for 4.14" from Heiko Stübner:
64bit Rockchip devicetree changes containing fixes for pinctrl typos
and the use of keep-power-in-suspend in non-sdio nodes as well as the
removal of the deprecated num-slots property from dwmmc nodes.
rk3328 gets support for spdif, io-domains and usb (including enablement
of usb on the evaluation board), while rk3368 gains support for spdif.
The biggest chunk of course aims for the rk3399 with a number of pcie
changes, support for the mali gpu, a new power-domain, sdmmc support
on the firefly board and dynamic-power-coefficients.
The gru family also gets support for their quite central pwm regulators
using the newly introduced vctrl regulator types.
* tag 'v4.14-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
arm64: dts: rockchip: update dynamic-power-coefficient for rk3399
arm64: dts: rockchip: add rk3328 spdif node
arm64: dts: rockchip: add rk3368 spdif node
arm64: dts: rockchip: enable sdmmc controller on rk3399-firefly
arm64: dts: rockchip: Add rk3328 io-domain node
arm64: dts: rockchip: kill pcie_clkreqn and pcie_clkreqnb for rk3399
arm64: dts: rockchip: change clkreq mode for rk3399-firefly
arm64: dts: rockchip: enable the GPU for RK3399-GRU
arm64: dts: rockchip: add ARM Mali GPU node for RK3399 SoCs
dt-bindings: gpu: add the RK3399 mali for rockchip specifics
arm64: dts: rockchip: remove abused keep-power-in-suspend
arm64: dts: rockchip: remove num-slots from all platforms
arm64: dts: rockchip: change clkreq mode for rk3399-evb
arm64: dts: rockchip: add SdioAudio pd control for rk3399
arm64: dts: rockchip: enable usb2 for RK3328 evaluation board
arm64: dts: rockchip: add usb2 nodes for RK3328 SoCs
arm64: dts: rockchip: set rk3399 dynamic CPU power coefficients
arm64: dts: rockchip: Use vctrl regulators for dynamic CPU voltages on Gru/Kevin
arm64: dts: rockchip: Update CPU regulator voltage ranges for Gru
arm64: dts: rockchip: fix typo in mmc pinctrl
* Add usb2.0 for R-Car H3 (r8a7795) ES2.0 SoC
* Add R-Car D3 (r8a77995) SoC and Draak board support
Adds minimal support for the R-Car D3 SoC and the Draak development
board, allowing to boot from a ramdisk using a serial console.
* Add Add VC6 clock generator to R-Car H3 (r8a7795)/Salvator-XS board
The VC6 is an I2C-controlled programmable clock generator, used on the
board to provide a display dot clock. Add it to DT.
* Add missing second pair of DMA names to MSIOF nodes to
R-Car M3-W (r8a7796) SoC
MSIOF0 and MSIOF1 are tied to two DMA controllers through two pairs of
DMA specifiers. However, the second pair of corresponding DMA names was
missing.
* Add support for the DU to R-Car H3 (r8a7795) SoC
Add a compatible string and VSP links to the DU node. The H3 ES1.x and H3
ES2.0 are compatible save for the links to the VSPs that are described
explicitly in DT, so there's no need for a new ES2-specific compatible
string.
* Enable HDMI on R-Car H3 (r8a7795) and M3-W (r8a7796) ULCB boards
* Enable DU on R-Car M3-W (r8a7796) Salvator-X board
* Enable I2C for DVFS on R-Car H3 (r8a7795) and M3-W (r8a7796) ULCB boards
* Add Add DRIF support to R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs
Ramesh Shanmugasundaram says, "R-Car Gen3 DRIF is a SPI like receive only
slave device."
* Move CPG_AUDIO_CLK_I from board to soc files
Geert Uytterhoeven says, "The definition of CPG_AUDIO_CLK_I is
SoC-specific, not board-specific."
* Add IMR-LX4 support to R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs
Sergei Shtylyov says, "The image renderer light extended 4 (IMR-LX4) or
the distortion correction engine is a drawing processor with a simple
instruction system capable of referencing data on an external memory as
2D texture data and performing texture mapping and drawing with respect
to any shape that is split into triangular objects."
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZfzd9AAoJENfPZGlqN0++Sv0QAKHcf5jviX3oYKnriTvK3G44
f2M5joczCbKagS26RO769bCHQHuylD4t6sa3gLyWsg2Ir8QXwmdNpIcx0DUmErf2
mFp07tuCe2JlGmLuN1N8zq/0mL0TFX7L7OR38vg4D7WGpyuAkLeVZdAwVqcefNJX
h6ANpkF2VX/CZJZTWLIFbe8LdxcJoJc7Usu0ElFcwBg6XdaBxWDBieJevg+1I7pP
vCjGozbuGx8cvZmKUp+KUtLuL7muhX6hVu6E2pQ4vnmGGYZFJCwAsf5en5nZyJfu
vbDC2ja2OIo9vQORJFboFvZOhzzmH2kTHUpO26DwTLLMoCLiqeB9Es3grD0rHP/y
8BNlj6JYcCOCwTMlSuKCcbLWUQedn50EtfSjS/3R9sV5ZG3149Cf+ls3yz2OtAsX
aFWExRyS2OJaq06uHK+oxsSd+tEbQuDJtY83ohGYyY/WzdFUNCEJHEseSVg5uOID
+as9uOTdSn0a+mJT4eQPMWKinQfElmUoe6tK7SV5Enz0e3TgSuNw0GdtAgJ2rNZr
XqOeUzNpY+s85bW6rYqrv44Si9haMik/jJqMzI4fGV9/GoKCYVfn7DZCrm1N5k+o
py377mcp078BBnmaFefp20skcqWN7Qy66R3eJ7S7v6zLI5jUphT89Z0y4lNj1hAy
5+j7l7Y0vvAYGlZiT0bb
=ehXW
-----END PGP SIGNATURE-----
Merge tag 'renesas-arm64-dt-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/dt64
Pull "Renesas ARM64 Based SoC DT Updates for v4.14" from Simon Horman:
* Add usb2.0 for R-Car H3 (r8a7795) ES2.0 SoC
* Add R-Car D3 (r8a77995) SoC and Draak board support
Adds minimal support for the R-Car D3 SoC and the Draak development
board, allowing to boot from a ramdisk using a serial console.
* Add Add VC6 clock generator to R-Car H3 (r8a7795)/Salvator-XS board
The VC6 is an I2C-controlled programmable clock generator, used on the
board to provide a display dot clock. Add it to DT.
* Add missing second pair of DMA names to MSIOF nodes to
R-Car M3-W (r8a7796) SoC
MSIOF0 and MSIOF1 are tied to two DMA controllers through two pairs of
DMA specifiers. However, the second pair of corresponding DMA names was
missing.
* Add support for the DU to R-Car H3 (r8a7795) SoC
Add a compatible string and VSP links to the DU node. The H3 ES1.x and H3
ES2.0 are compatible save for the links to the VSPs that are described
explicitly in DT, so there's no need for a new ES2-specific compatible
string.
* Enable HDMI on R-Car H3 (r8a7795) and M3-W (r8a7796) ULCB boards
* Enable DU on R-Car M3-W (r8a7796) Salvator-X board
* Enable I2C for DVFS on R-Car H3 (r8a7795) and M3-W (r8a7796) ULCB boards
* Add Add DRIF support to R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs
Ramesh Shanmugasundaram says, "R-Car Gen3 DRIF is a SPI like receive only
slave device."
* Move CPG_AUDIO_CLK_I from board to soc files
Geert Uytterhoeven says, "The definition of CPG_AUDIO_CLK_I is
SoC-specific, not board-specific."
* Add IMR-LX4 support to R-Car H3 (r8a7795) and M3-W (r8a7796) SoCs
Sergei Shtylyov says, "The image renderer light extended 4 (IMR-LX4) or
the distortion correction engine is a drawing processor with a simple
instruction system capable of referencing data on an external memory as
2D texture data and performing texture mapping and drawing with respect
to any shape that is split into triangular objects."
* tag 'renesas-arm64-dt-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (31 commits)
arm64: dts: renesas: r8a7795: add hsusb ch3 device node
arm64: dts: renesas: r8a7795: add usb-dmac ch2 and ch3 device nodes
arm64: dts: renesas: r8a7795: add usb2.0 host ch3 device nodes
arm64: dts: renesas: r8a7795: add usb2_phy ch3 device node
arm64: dts: renesas: r8a7795: Add usb companion property in EHCI
arm64: dts: renesas: Add Renesas Draak board support
arm64: dts: renesas: Add Renesas R8A77995 SoC support
arm64: renesas: Add Renesas R8A77995 Kconfig support
arm64: dts: r8a7795: salvator-xs: Connect DU dot clocks 0 and 3
arm64: dts: salvator-xs: Add VC6 clock generator
arm64: dts: r8a7796: Add missing second pair of DMA names to MSIOF nodes
arm64: dts: r8a7795: Add all MSIOF nodes
arm64: dts: r8a7795: Add support for the DU
arm64: dts: ulcb: Enable HDMI output
arm64: dts: ulcb: Add HDMI output connector
arm64: dts: r8a7796: m3ulcb: Add DU external dot clocks
arm64: dts: r8a7795: h3ulcb: Add DU external dot clocks
arm64: dts: ulcb: Add DU external dot clock sources
arm64: dts: r8a7796: salvator-x: Enable HDMI output
arm64: dts: r8a7796: salvator-x: Add DU external dot clocks
...
1. Remove deprecated and unneeded properties from Exynos boards.
2. Implement proper (working) support for USB On-The-Go on Exynos5433
TM2/TM2E boards.
-----BEGIN PGP SIGNATURE-----
iQIcBAABCAAGBQJZdj1rAAoJEME3ZuaGi4PX+goP/1F2rvi5nRu/IAPwpm7iplMx
IbTtEYHH6IfL4Qhp2TPbxBNc3VKpL1Nc/e0DM60GWyFqevZXjDsiP6UhwyqTx61m
eHX19+LkKEyCifUoce4c3Z5Y/lI3k1oLYTSWp3DvmVd5JS+y1AAMAojnh2O4wWve
0RA3BlLMPfaydjVD44CKOjJiKdT90B/Qdgpy36OkgX2i0t7pZeuenMbZSKwW8jvs
rgFjD9iN5oQWFrXPDscFc/oL46aaD9Xll3QWBe70eUvrkum+4+RXCmdMxhIr8Rs2
NHzmuDZTezUPHjdCOvgNpmYPSN5dcWeeck3HvVQQaXFztqGr8RZ8Wk3gDnc9Xbfy
OUBreQquFew62nMhbUsglgl+umoIw+fdzphjxp50mvq22YpsoGEShN3HU4ZiUHul
9ISPZspAevk/2Al/McY85wqLrofcTpoUydsja46hxmAQrjuGzJqLt9HI7azG4JLZ
iIXZK6+comEqxK3ei7P4q1D82/Hwy5nLStSEdYQU7mUMcLIl+HDWaq80RzebImoh
oldBkRPqayU51vDOG9RiVm7vSH6gHCSEVdMgjdOTOoQMq9UN/CqLVe60VL6R1m3e
U5Kh0QcxNVFnxzOeVwikPN1s35sw4JEyHofu3rqIeBTxnckCjQvE6JSdYJqipCYD
jrNMAHC1cknv+FhSPzND
=hQn1
-----END PGP SIGNATURE-----
Merge tag 'samsung-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into next/dt64
Pull "Samsung DTS ARM64 changes for v4.14" from Krzysztof Kozłowski:
1. Remove deprecated and unneeded properties from Exynos boards.
2. Implement proper (working) support for USB On-The-Go on Exynos5433
TM2/TM2E boards.
* tag 'samsung-dt64-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
arm64: dts: exynos: Remove num-slots from exynos platforms
arm64: dts: exynos: Add extcon property for TM2 and TM2E
arm64: dts: exynos: Fix wrong label for USB 3.0 controller node
arm64: dts: exynos: Remove the OF graph from DSI node
This patch adds the IOMMU node for the IOMMU that resides on the
Qualcomm MSM8916 platforms.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
This patch adds the Qualcomm Venus video codec node for the video
codec hardware residing on MSM8916 platforms.
Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
This patch is to add watchdog binding for Hi3660 on Hikey960 board.
Cc: Guodong Xu <guodong.xu@linaro.org>
Cc: Zhong Kaihua <zhongkaihua@huawei.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
This patch reserves some memory in the DTS and sets up a
pstore device tree node to enable pstore support on HiKey960.
Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
Add support to hikey960 dts for the syscon-reboot-mode driver.
Cc: John Stultz <john.stultz@linaro.org>
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
There are two clusters on the Hi3660, the first one is Cortex-A53 based
and the other one is Cortex-A73 based. These two clusters have different
idle states.
Thanks to Daniel Lezcano's recent changes, the generic ARM cpuidle
driver can now support several clusters with different idle states, thus
supporting the big.Little architecture.
In addition to the WFI idle state which is the default shallowest state
for all ARM cpus, the Hi3660 supports the following states:
- CA53 CPUs:
- CPU_SLEEP: CPU power off state
- CLUSTER_SLEEP_0: Cluster power off state
- CA73 CPUs:
- CPU_NAP: CPU retention state
- CPU_SLEEP: CPU power off state
- CLUSTER_SLEEP_1: Cluster power off state
This patch adds the idle states description for the Hi3660 to the device
tree.
Cc: Kevin Wang <jean.wangtao@linaro.org>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
This patch adds the Qualcomm Adreno GPU node that exists in the
MSM8916.
Signed-off-by: Rob Clark <robdclark@gmail.com>
Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
Both unwind_frame() and dump_backtrace() try to check whether a stack
address is sane to access, with very similar logic. Both will need
updating in order to handle overflow stacks.
Factor out this logic into a helper, so that we can avoid further
duplication when we add overflow stacks.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
This patch enables arm64 to be built with vmap'd task and IRQ stacks.
As vmap'd stacks are mapped at page granularity, stacks must be a multiple of
PAGE_SIZE. This means that a 64K page kernel must use stacks of at least 64K in
size.
To minimize the increase in Image size, IRQ stacks are dynamically allocated at
boot time, rather than embedding the boot CPU's IRQ stack in the kernel image.
This patch was co-authored by Ard Biesheuvel and Mark Rutland.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
We allocate our IRQ stacks using a percpu array. This allows us to generate our
IRQ stack pointers with adr_this_cpu, but bloats the kernel Image with the boot
CPU's IRQ stack. Additionally, these are packed with other percpu variables,
and aren't guaranteed to have guard pages.
When we enable VMAP_STACK we'll want to vmap our IRQ stacks also, in order to
provide guard pages and to permit more stringent alignment requirements. Doing
so will require that we use a percpu pointer to each IRQ stack, rather than
allocating a percpu IRQ stack in the kernel image.
This patch updates our IRQ stack code to use a percpu pointer to the base of
each IRQ stack. This will allow us to change the way the stack is allocated
with minimal changes elsewhere. In some cases we may try to backtrace before
the IRQ stack pointers are initialised, so on_irq_stack() is updated to account
for this.
In testing with cyclictest, there was no measureable difference between using
adr_this_cpu (for irq_stack) and ldr_this_cpu (for irq_stack_ptr) in the IRQ
entry path.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Given that adr_this_cpu already requires a temp register in addition
to the destination register, tweak the instruction sequence so that sp
may be used as well.
This will simplify switching to per-cpu stacks in subsequent patches. While
this limits the range of adr_this_cpu, to +/-4GiB, we don't currently use
adr_this_cpu in modules, and this is not problematic for the main kernel image.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[Mark: add more commit text]
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
In subsequent patches, we will detect stack overflow in our exception
entry code, by verifying the SP after it has been decremented to make
space for the exception regs.
This verification code is small, and we can minimize its impact by
placing it directly in the vectors. To avoid redundant modification of
the SP, we also need to move the initial decrement of the SP into the
vectors.
As a preparatory step, this patch introduces kernel_ventry, which
performs this decrement, and updates the entry code accordingly.
Subsequent patches will fold SP verification into kernel_ventry.
There should be no functional change as a result of this patch.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[Mark: turn into prep patch, expand commit msg]
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
The EFI stub is intimately coupled with the kernel, and takes advantage
of this by relocating the kernel at a weaker alignment than the
documented boot protocol mandates.
However, it does so by assuming it can align the kernel to the segment
alignment, and assumes that this is 64K. In subsequent patches, we'll
have to consider other details to determine this de-facto alignment
constraint.
This patch adds a new EFI_KIMG_ALIGN definition that will track the
kernel's de-facto alignment requirements. Subsequent patches will modify
this as required.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Cc: Matt Fleming <matt@codeblueprint.co.uk>
Currently we define SEGMENT_ALIGN directly in our vmlinux.lds.S.
This is unfortunate, as the EFI stub currently open-codes the same
number, and in future we'll want to fiddle with this.
This patch moves the definition to our <asm/memory.h>, where it can be
used by both vmlinux.lds.S and the EFI stub code.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Before we add yet another stack to the kernel, it would be nice to
ensure that we consistently organise stack definitions and related
helper functions.
This patch moves the basic IRQ stack defintions to <asm/memory.h> to
live with their task stack counterparts. Helpers used for unwinding are
moved into <asm/stacktrace.h>, where subsequent patches will add helpers
for other stacks. Includes are fixed up accordingly.
This patch is a pure refactoring -- there should be no functional
changes as a result of this patch.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Currently we define THREAD_SIZE and THREAD_SIZE_ORDER separately, with
the latter dependent on particular CONFIG_ARM64_*K_PAGES definitions.
This is somewhat opaque, and will get in the way of future modifications
to THREAD_SIZE.
This patch cleans this up, defining both in terms of a common
THREAD_SHIFT, and using PAGE_SHIFT to calculate THREAD_SIZE_ORDER,
rather than using a number of definitions dependent on config symbols.
Subsequent patches will make use of this to alter the stack size used in
some configurations.
At the same time, these are moved into <asm/memory.h>, which will avoid
circular include issues in subsequent patches. To ensure that existing
code isn't adversely affected, <asm/thread_info.h> is updated to
transitively include these definitions.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Some headers rely on PAGE_* definitions from <asm/page.h>, but cannot
include this due to potential circular includes. For example, a number
of definitions in <asm/memory.h> rely on PAGE_SHIFT, and <asm/page.h>
includes <asm/memory.h>.
This requires users of these definitions to include both headers, which
is fragile and error-prone.
This patch ameliorates matters by moving the basic definitions out to a
new header, <asm/page-def.h>. Both <asm/page.h> and <asm/memory.h> are
updated to include this, avoiding this fragility, and avoiding the
possibility of circular include dependencies.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
For historical reasons, we leave the top 16 bytes of our task and IRQ
stacks unused, a practice used to ensure that the SP can always be
masked to find the base of the current stack (historically, where
thread_info could be found).
However, this is not necessary, as:
* When an exception is taken from a task stack, we decrement the SP by
S_FRAME_SIZE and stash the exception registers before we compare the
SP against the task stack. In such cases, the SP must be at least
S_FRAME_SIZE below the limit, and can be safely masked to determine
whether the task stack is in use.
* When transitioning to an IRQ stack, we'll place a dummy frame onto the
IRQ stack before enabling asynchronous exceptions, or executing code
we expect to trigger faults. Thus, if an exception is taken from the
IRQ stack, the SP must be at least 16 bytes below the limit.
* We no longer mask the SP to find the thread_info, which is now found
via sp_el0. Note that historically, the offset was critical to ensure
that cpu_switch_to() found the correct stack for new threads that
hadn't yet executed ret_from_fork().
Given that, this initial offset serves no purpose, and can be removed.
This brings us in-line with other architectures (e.g. x86) which do not
rely on this masking.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
[Mark: rebase, kill THREAD_START_SP, commit msg additions]
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
Our __die() implementation tries to dump the stack memory, in addition
to a backtrace, which is problematic.
For contemporary 16K stacks, this can be a lot of data, which can take a
long time to dump, and can push other useful context out of the kernel's
printk ringbuffer (and/or a user's scrollback buffer on an attached
console).
Additionally, the code implicitly assumes that the SP is on the task's
stack, and tries to dump everything between the SP and the highest task
stack address. When the SP points at an IRQ stack (or is corrupted),
this makes the kernel attempt to dump vast amounts of VA space. With
vmap'd stacks, this may result in erroneous accesses to peripherals.
This patch removes the memory dump, leaving us to rely on the backtrace,
and other means of dumping stack memory such as kdump.
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will.deacon@arm.com>
Tested-by: Laura Abbott <labbott@redhat.com>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: James Morse <james.morse@arm.com>
- Enable Kirin PCIe host, hi6421v530 mfd and regulator,
syscon reboot mode, serdev bus, OP-TEE and K3 DMA support
for hikey and hikey960
- Enable pcie based sas controller support for hip08 SoC
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZkc7VAAoJEAvIV27ZiWZcud0QAK6Pi/oB8qLy0xUCdkcIYHhI
XJD+PKMkZNdgWccW9bTqxVjb7iecEBA3IO1KqKvAOlQ9psjDZYuY7pJlXxhlNgmP
ulYvZpMQeKosUB/cT4ZjcTNQ/OB1Z+GNmP/HbWC6vGFyZH8ZDbXpd195+q4KKi+c
fs53ULbu5bJ22i6WYMId7fufRDXFwZoJHZWQaDUVYsmOOeFKHoS0m+NeEwZHXB2k
ruoJKF117t3xScp2GCfBIJH28cfRcmirNv6UKconX7IpuQqhZqBiYi3xYrM3bfsd
xqH9iY+SX6xb1J/gvP4zyPVrcMAB24eJI/1jSf9ipjpPBFA1iAECsVgnZ0xR8SUI
U62JGV+w/qOq/5A5En9izUY+TSmxqTsmBp5/sj7uQqM8MBIkUvD98i9PAC5fdNBh
rqKGl2qwa+VJLdfrI7U1fNJiwWCJrFWGytCTWEF0A+8ZKVVbIBvcl8pkz76kaTb6
PfQzSUSuL6sqZXXzQqVfJ89llu31C5kkIyUdaMd0JgqVnZ9NKUaOhkVlTIOKsbTl
Nrf9fta2g6xXjVjU7NEeacrtN4+kUKzARfzzAWNi5AumKuL/dhjP98QO5LF/87SC
UbVWeb2fftV5g8Yv9tFVA0vWRRJKGnBzRxwJw7ext7fKOesVnnQntwX5bl55KRqa
3lC8l/KnXp95x3z5ZrSF
=AEey
-----END PGP SIGNATURE-----
Merge tag 'hisi-defconfig-for-4.14' of git://github.com/hisilicon/linux-hisi into next/arm64
Pull "ARM64: hisilicon: defconfig updates for 4.14" from Wei Xu:
- Enable Kirin PCIe host, hi6421v530 mfd and regulator,
syscon reboot mode, serdev bus, OP-TEE and K3 DMA support
for hikey and hikey960
- Enable pcie based sas controller support for hip08 SoC
* tag 'hisi-defconfig-for-4.14' of git://github.com/hisilicon/linux-hisi:
arm64: defconfig: enable DMA driver for hi3660
arm64: defconfig: enable OP-TEE
arm64: defconfig: enable support for serial port connected device
arm64: defconfig: enable CONFIG_SYSCON_REBOOT_MODE
arm64: defconfig: enable support hi6421v530 PMIC
arm64: defconfig: enable Kirin PCIe
arm64: defconfig: enable SCSI_HISI_SAS_PCI
Add the arm64 crypto drivers that have been added over the past
couple of kernel releases to its defconfig as modules.
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Enabling nop-xceiv PHY driver in the defconfig, needed for USB support
on A8K SoC based board.
Enabling fine-grained task level IRQ time accounting for ARMv8 as it was
already done for x86
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlmNg88ACgkQCwYYjhRyO9UgWwCeLnJikdCOF4YoN3fxw6NxNivN
cAwAn0z2IYh42j7UoBwxINih2byehBL8
=ZHwt
-----END PGP SIGNATURE-----
Merge tag 'mvebu-arm64-4.14-1' of git://git.infradead.org/linux-mvebu into next/arm64
Pull "mvebu arm64 for 4.14 (part 1)" from Gregory CLEMENT:
Enabling nop-xceiv PHY driver in the defconfig, needed for USB support
on A8K SoC based board.
Enabling fine-grained task level IRQ time accounting for ARMv8 as it was
already done for x86
* tag 'mvebu-arm64-4.14-1' of git://git.infradead.org/linux-mvebu:
arm64: defconfig: enable fine-grained task level IRQ time accounting
arm64: defconfig: enable nop-xceiv PHY driver
* compile ak4613 and renesas sound as modules
This is intended to reduce the size of a kernel image compiled
using the defconfig. This is timely as it brings the kernel image
back below the size that can be booted in my environment, a limit
it crept over in v4.13-rc1.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJZfziqAAoJENfPZGlqN0++yFIQAIHtAfEpIKff7ELoEGgNOzs2
8F89igteIxumVy5to1XNVvWksoYSakWzjrOMV3dzj+llYxsjg5d7Mfc+oadNsfWy
40dFQw84QHzobqJ0I2NbhV8+1M0K4DslfzphFjB6KQK/WfDa9iw4G/GeoahX/SHP
smNd/etE0YULwnO0rujzhC3dcGiusU7u80D8yc/VlDLgAGalZP5HYP0QZ3cwBf0P
ONwjkBO6rU8e+HRYLbQkAKR9UWKXZHruM1KUrPhxkDk/+KNaEOfTDQWSuIUFokxl
bU+LV750nT8hIXXLBlX4WtkaT5uaHJoUfHXEpQnEKjXaPC4u2zVqhofZxcaIFW5R
0c/MhRmC4e8BnPQLljZqU5180qCKKXWAejYX3dRT9yUvTnHzZU8LVSn1QY4+Pvrf
CixTdXjLQOcn9G8WpInZ63xCT1j9aVY28KOVSLtUtVl/08LbEuD66PxNje45MEpp
yvi8khhvaWzpY2wPK7I3hmFIO55IYMNBfqmnNlGnuBkxNn1j1ZXSl+4P8Q41Q2GD
jXqu8cK9mJlyxwf0OSUQJQNY5c+uzcX2rKtDbf9Lkb9OnUBv8gqtvDVdaHKJzpTg
gRpvVs3mEEuT8sntECONBqsTfOEziZofwOgOSPiXoQqRHaY0NnUVW7TlBHQY4xAA
zLpnjzlpgkw6sJNU3t0h
=PAs6
-----END PGP SIGNATURE-----
Merge tag 'renesas-arm64-defconfig-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into next/arm64
Pull "Renesas ARM64 Based SoC Defconfig Updates for v4.14" from Simon Horman:
* compile ak4613 and renesas sound as modules
This is intended to reduce the size of a kernel image compiled
using the defconfig. This is timely as it brings the kernel image
back below the size that can be booted in my environment, a limit
it crept over in v4.13-rc1.
* tag 'renesas-arm64-defconfig-for-v4.14' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
arm64: defconfig: compile ak4613 and renesas sound as modules
commit cee22a1505 ("workqueues: Introduce new flag WQ_POWER_EFFICIENT
for power oriented workqueues") introduced the concept of power
efficient workqueues (4 years back), but it was never enabled in
upstream kernel configs.
Power efficient workqueues are simply marked as "unbound," so that jobs
queued to them can run on any CPU in the system. It leaves the target
CPU selection to the scheduler, which is the best place for such
decision making. This improves power efficiency for workqueues which are
otherwise pinned to a CPU.
Enable it for ARM64 platforms as ARM platforms were the main target for
the introduction of power efficient workqueues.
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Commit a7be6e5a7f ("mm: drop useless local parameters of
__register_one_node()") removes the last user of parent_node().
The parent_node() macro in ARM64 platform is unnecessary.
Remove it for cleanup.
Reported-by: Michael Ellerman <mpe@ellerman.id.au>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
NanoPi A64 is a new board of high performance with low cost
designed by FriendlyElec., using the Allwinner A64 SOC.
Nanopi A64 features
- Allwinner A64, 64-bit Quad-core Cortex-A53@648MHz to 1.152GHz, DVFS
- 1GB DDR3 RAM
- MicroSD
- Gigabit Ethernet (RTL8211E)
- Wi-Fi 802.11b/g/n
- IR receiver
- Audio In/Out
- Video In/Out
- Serial Debug Port
- microUSB 5V 2A DC power-supply
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Chen-Yu Tsai <wens@csie.org>
This patch enables these configs:
+CONFIG_SERIAL_DEV_BUS=y
+CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
As example, a bluetooth device connected to UART port can be supported by
this.
Signed-off-by: Guodong Xu <guodong.xu@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
Enable HiSilicon SAS controller based on PCI device,
which is included in hip08 SoC.
Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>