Commit Graph

23516 Commits

Author SHA1 Message Date
Marc Zyngier
118bc846d4 Merge branch kvm-arm64/pmu-unchained into kvmarm-master/next
* kvm-arm64/pmu-unchained:
  : .
  : PMUv3 fixes and improvements:
  :
  : - Make the CHAIN event handling strictly follow the architecture
  :
  : - Add support for PMUv3p5 (64bit counters all the way)
  :
  : - Various fixes and cleanups
  : .
  KVM: arm64: PMU: Fix period computation for 64bit counters with 32bit overflow
  KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run
  KVM: arm64: PMU: Simplify PMCR_EL0 reset handling
  KVM: arm64: PMU: Replace version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
  KVM: arm64: PMU: Make kvm_pmc the main data structure
  KVM: arm64: PMU: Simplify vcpu computation on perf overflow notification
  KVM: arm64: PMU: Allow PMUv3p5 to be exposed to the guest
  KVM: arm64: PMU: Implement PMUv3p5 long counter support
  KVM: arm64: PMU: Allow ID_DFR0_EL1.PerfMon to be set from userspace
  KVM: arm64: PMU: Allow ID_AA64DFR0_EL1.PMUver to be set from userspace
  KVM: arm64: PMU: Move the ID_AA64DFR0_EL1.PMUver limit to VM creation
  KVM: arm64: PMU: Do not let AArch32 change the counters' top 32 bits
  KVM: arm64: PMU: Simplify setting a counter to a specific value
  KVM: arm64: PMU: Add counter_index_to_*reg() helpers
  KVM: arm64: PMU: Only narrow counters that are not 64bit wide
  KVM: arm64: PMU: Narrow the overflow checking when required
  KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow
  KVM: arm64: PMU: Always advertise the CHAIN event
  KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode
  arm64: Add ID_DFR0_EL1.PerfMon values for PMUv3p7 and IMP_DEF

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-12-05 14:38:44 +00:00
Marc Zyngier
382b5b87a9 Merge branch kvm-arm64/mte-map-shared into kvmarm-master/next
* kvm-arm64/mte-map-shared:
  : .
  : Update the MTE support to allow the VMM to use shared mappings
  : to back the memslots exposed to MTE-enabled guests.
  :
  : Patches courtesy of Catalin Marinas and Peter Collingbourne.
  : .
  : Fix a number of issues with MTE, such as races on the tags
  : being initialised vs the PG_mte_tagged flag as well as the
  : lack of support for VM_SHARED when KVM is involved.
  :
  : Patches from Catalin Marinas and Peter Collingbourne.
  : .
  Documentation: document the ABI changes for KVM_CAP_ARM_MTE
  KVM: arm64: permit all VM_MTE_ALLOWED mappings with MTE enabled
  KVM: arm64: unify the tests for VMAs in memslots when MTE is enabled
  arm64: mte: Lock a page for MTE tag initialisation
  mm: Add PG_arch_3 page flag
  KVM: arm64: Simplify the sanitise_mte_tags() logic
  arm64: mte: Fix/clarify the PG_mte_tagged semantics
  mm: Do not enable PG_arch_2 for all 64-bit architectures

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-12-05 14:38:24 +00:00
Marc Zyngier
cfa72993d1 Merge branch kvm-arm64/pkvm-vcpu-state into kvmarm-master/next
* kvm-arm64/pkvm-vcpu-state: (25 commits)
  : .
  : Large drop of pKVM patches from Will Deacon and co, adding
  : a private vm/vcpu state at EL2, managed independently from
  : the EL1 state. From the cover letter:
  :
  : "This is version six of the pKVM EL2 state series, extending the pKVM
  : hypervisor code so that it can dynamically instantiate and manage VM
  : data structures without the host being able to access them directly.
  : These structures consist of a hyp VM, a set of hyp vCPUs and the stage-2
  : page-table for the MMU. The pages used to hold the hypervisor structures
  : are returned to the host when the VM is destroyed."
  : .
  KVM: arm64: Use the pKVM hyp vCPU structure in handle___kvm_vcpu_run()
  KVM: arm64: Don't unnecessarily map host kernel sections at EL2
  KVM: arm64: Explicitly map 'kvm_vgic_global_state' at EL2
  KVM: arm64: Maintain a copy of 'kvm_arm_vmid_bits' at EL2
  KVM: arm64: Unmap 'kvm_arm_hyp_percpu_base' from the host
  KVM: arm64: Return guest memory from EL2 via dedicated teardown memcache
  KVM: arm64: Instantiate guest stage-2 page-tables at EL2
  KVM: arm64: Consolidate stage-2 initialisation into a single function
  KVM: arm64: Add generic hyp_memcache helpers
  KVM: arm64: Provide I-cache invalidation by virtual address at EL2
  KVM: arm64: Initialise hypervisor copies of host symbols unconditionally
  KVM: arm64: Add per-cpu fixmap infrastructure at EL2
  KVM: arm64: Instantiate pKVM hypervisor VM and vCPU structures from EL1
  KVM: arm64: Add infrastructure to create and track pKVM instances at EL2
  KVM: arm64: Rename 'host_kvm' to 'host_mmu'
  KVM: arm64: Add hyp_spinlock_t static initializer
  KVM: arm64: Include asm/kvm_mmu.h in nvhe/mem_protect.h
  KVM: arm64: Add helpers to pin memory shared with the hypervisor at EL2
  KVM: arm64: Prevent the donation of no-map pages
  KVM: arm64: Implement do_donate() helper for donating memory
  ...

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-12-05 14:37:23 +00:00
Marc Zyngier
fe8e3f44c5 Merge branch kvm-arm64/parallel-faults into kvmarm-master/next
* kvm-arm64/parallel-faults:
  : .
  : Parallel stage-2 fault handling, courtesy of Oliver Upton.
  : From the cover letter:
  :
  : "Presently KVM only takes a read lock for stage 2 faults if it believes
  : the fault can be fixed by relaxing permissions on a PTE (write unprotect
  : for dirty logging). Otherwise, stage 2 faults grab the write lock, which
  : predictably can pile up all the vCPUs in a sufficiently large VM.
  :
  : Like the TDP MMU for x86, this series loosens the locking around
  : manipulations of the stage 2 page tables to allow parallel faults. RCU
  : and atomics are exploited to safely build/destroy the stage 2 page
  : tables in light of multiple software observers."
  : .
  KVM: arm64: Reject shared table walks in the hyp code
  KVM: arm64: Don't acquire RCU read lock for exclusive table walks
  KVM: arm64: Take a pointer to walker data in kvm_dereference_pteref()
  KVM: arm64: Handle stage-2 faults in parallel
  KVM: arm64: Make table->block changes parallel-aware
  KVM: arm64: Make leaf->leaf PTE changes parallel-aware
  KVM: arm64: Make block->table PTE changes parallel-aware
  KVM: arm64: Split init and set for table PTE
  KVM: arm64: Atomically update stage 2 leaf attributes in parallel walks
  KVM: arm64: Protect stage-2 traversal with RCU
  KVM: arm64: Tear down unlinked stage-2 subtree after break-before-make
  KVM: arm64: Use an opaque type for pteps
  KVM: arm64: Add a helper to tear down unlinked stage-2 subtrees
  KVM: arm64: Don't pass kvm_pgtable through kvm_pgtable_walk_data
  KVM: arm64: Pass mm_ops through the visitor context
  KVM: arm64: Stash observed pte value in visitor context
  KVM: arm64: Combine visitor arguments into a context structure

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-12-05 14:22:55 +00:00
Masami Hiramatsu (Google)
3b84efc066 arm64: kprobes: Return DBG_HOOK_ERROR if kprobes can not handle a BRK
Return DBG_HOOK_ERROR if kprobes can not handle a BRK because it
fails to find a kprobe corresponding to the address.

Since arm64 kprobes uses stop_machine based text patching for removing
BRK, it ensures all running kprobe_break_handler() is done at that point.
And after removing the BRK, it removes the kprobe from its hash list.
Thus, if the kprobe_break_handler() fails to find kprobe from hash list,
there is a bug.

Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/166994753273.439920.6629626290560350760.stgit@devnote3
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-05 14:20:08 +00:00
Masami Hiramatsu (Google)
30a4215523 arm64: kprobes: Let arch do_page_fault() fix up page fault in user handler
Since arm64's do_page_fault() can handle the page fault correctly
than kprobe_fault_handler() according to the context, let it handle
the page fault instead of simply call fixup_exception() in the
kprobe_fault_handler().

Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/166994752269.439920.4801339965959400456.stgit@devnote3
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-05 14:20:08 +00:00
Masami Hiramatsu (Google)
0fbcd8abf3 arm64: Prohibit instrumentation on arch_stack_walk()
Mark arch_stack_walk() as noinstr instead of notrace and inline functions
called from arch_stack_walk() as __always_inline so that user does not
put any instrumentations on it, because this function can be used from
return_address() which is used by lockdep.

Without this, if the kernel built with CONFIG_LOCKDEP=y, just probing
arch_stack_walk() via <tracefs>/kprobe_events will crash the kernel on
arm64.

 # echo p arch_stack_walk >> ${TRACEFS}/kprobe_events
 # echo 1 > ${TRACEFS}/events/kprobes/enable
  kprobes: Failed to recover from reentered kprobes.
  kprobes: Dump kprobe:
  .symbol_name = arch_stack_walk, .offset = 0, .addr = arch_stack_walk+0x0/0x1c0
  ------------[ cut here ]------------
  kernel BUG at arch/arm64/kernel/probes/kprobes.c:241!
  kprobes: Failed to recover from reentered kprobes.
  kprobes: Dump kprobe:
  .symbol_name = arch_stack_walk, .offset = 0, .addr = arch_stack_walk+0x0/0x1c0
  ------------[ cut here ]------------
  kernel BUG at arch/arm64/kernel/probes/kprobes.c:241!
  PREEMPT SMP
  Modules linked in:
  CPU: 0 PID: 17 Comm: migration/0 Tainted: G                 N 6.1.0-rc5+ #6
  Hardware name: linux,dummy-virt (DT)
  Stopper: 0x0 <- 0x0
  pstate: 600003c5 (nZCv DAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  pc : kprobe_breakpoint_handler+0x178/0x17c
  lr : kprobe_breakpoint_handler+0x178/0x17c
  sp : ffff8000080d3090
  x29: ffff8000080d3090 x28: ffff0df5845798c0 x27: ffffc4f59057a774
  x26: ffff0df5ffbba770 x25: ffff0df58f420f18 x24: ffff49006f641000
  x23: ffffc4f590579768 x22: ffff0df58f420f18 x21: ffff8000080d31c0
  x20: ffffc4f590579768 x19: ffffc4f590579770 x18: 0000000000000006
  x17: 5f6b636174735f68 x16: 637261203d207264 x15: 64612e202c30203d
  x14: 2074657366666f2e x13: 30633178302f3078 x12: 302b6b6c61775f6b
  x11: 636174735f686372 x10: ffffc4f590dc5bd8 x9 : ffffc4f58eb31958
  x8 : 00000000ffffefff x7 : ffffc4f590dc5bd8 x6 : 80000000fffff000
  x5 : 000000000000bff4 x4 : 0000000000000000 x3 : 0000000000000000
  x2 : 0000000000000000 x1 : ffff0df5845798c0 x0 : 0000000000000064
  Call trace:
  kprobes: Failed to recover from reentered kprobes.
  kprobes: Dump kprobe:
  .symbol_name = arch_stack_walk, .offset = 0, .addr = arch_stack_walk+0x0/0x1c0
  ------------[ cut here ]------------
  kernel BUG at arch/arm64/kernel/probes/kprobes.c:241!

Fixes: 39ef362d2d ("arm64: Make return_address() use arch_stack_walk()")
Cc: stable@vger.kernel.org
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/166994751368.439920.3236636557520824664.stgit@devnote3
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-05 14:20:08 +00:00
Marc Zyngier
a937f37d85 Merge branch kvm-arm64/dirty-ring into kvmarm-master/next
* kvm-arm64/dirty-ring:
  : .
  : Add support for the "per-vcpu dirty-ring tracking with a bitmap
  : and sprinkles on top", courtesy of Gavin Shan.
  :
  : This branch drags the kvmarm-fixes-6.1-3 tag which was already
  : merged in 6.1-rc4 so that the branch is in a working state.
  : .
  KVM: Push dirty information unconditionally to backup bitmap
  KVM: selftests: Automate choosing dirty ring size in dirty_log_test
  KVM: selftests: Clear dirty ring states between two modes in dirty_log_test
  KVM: selftests: Use host page size to map ring buffer in dirty_log_test
  KVM: arm64: Enable ring-based dirty memory tracking
  KVM: Support dirty ring in conjunction with bitmap
  KVM: Move declaration of kvm_cpu_dirty_log_size() to kvm_dirty_ring.h
  KVM: x86: Introduce KVM_REQ_DIRTY_RING_SOFT_FULL

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-12-05 14:19:50 +00:00
Marc Zyngier
3bbcc8cce2 Merge branch kvm-arm64/52bit-fixes into kvmarm-master/next
* kvm-arm64/52bit-fixes:
  : .
  : 52bit PA fixes, courtesy of Ryan Roberts. From the cover letter:
  :
  : "I've been adding support for FEAT_LPA2 to KVM and as part of that work have been
  : testing various (84) configurations of HW, host and guest kernels on FVP. This
  : has thrown up a couple of pre-existing bugs, for which the fixes are provided."
  : .
  KVM: arm64: Fix benign bug with incorrect use of VA_BITS
  KVM: arm64: Fix PAR_TO_HPFAR() to work independently of PA_BITS.
  KVM: arm64: Fix kvm init failure when mode!=vhe and VA_BITS=52.

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-12-05 14:19:27 +00:00
Ryan Roberts
219072c09a KVM: arm64: Fix benign bug with incorrect use of VA_BITS
get_user_mapping_size() uses kvm's pgtable library to walk a user space
page table created by the kernel, and in doing so, passes metadata
that the library needs, including ia_bits, which defines the size of the
input address.

For the case where the kernel is compiled for 52 VA bits but runs on HW
that does not support LVA, it will fall back to 48 VA bits at runtime.
Therefore we must use vabits_actual rather than VA_BITS to get the true
address size.

This is benign in the current code base because the pgtable library only
uses it for error checking.

Fixes: 6011cf68c8 ("KVM: arm64: Walk userspace page tables to compute the THP mapping size")
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221205114031.3972780-1-ryan.roberts@arm.com
2022-12-05 14:17:53 +00:00
junhua huang
60f07e22a7 arm64:uprobe fix the uprobe SWBP_INSN in big-endian
We use uprobe in aarch64_be, which we found the tracee task would exit
due to SIGILL when we enable the uprobe trace.
We can see the replace inst from uprobe is not correct in aarch big-endian.
As in Armv8-A, instruction fetches are always treated as little-endian,
we should treat the UPROBE_SWBP_INSN as little-endian。

The test case is as following。
bash-4.4# ./mqueue_test_aarchbe 1 1 2 1 10 > /dev/null &
bash-4.4# cd /sys/kernel/debug/tracing/
bash-4.4# echo 'p:test /mqueue_test_aarchbe:0xc30 %x0 %x1' > uprobe_events
bash-4.4# echo 1 > events/uprobes/enable
bash-4.4#
bash-4.4# ps
  PID TTY          TIME CMD
  140 ?        00:00:01 bash
  237 ?        00:00:00 ps
[1]+  Illegal instruction     ./mqueue_test_aarchbe 1 1 2 1 100 > /dev/null

which we debug use gdb as following:

bash-4.4# gdb attach 155
(gdb) disassemble send
Dump of assembler code for function send:
   0x0000000000400c30 <+0>:     .inst   0xa00020d4 ; undefined
   0x0000000000400c34 <+4>:     mov     x29, sp
   0x0000000000400c38 <+8>:     str     w0, [sp, #28]
   0x0000000000400c3c <+12>:    strb    w1, [sp, #27]
   0x0000000000400c40 <+16>:    str     xzr, [sp, #40]
   0x0000000000400c44 <+20>:    str     xzr, [sp, #48]
   0x0000000000400c48 <+24>:    add     x0, sp, #0x1b
   0x0000000000400c4c <+28>:    mov     w3, #0x0                 // #0
   0x0000000000400c50 <+32>:    mov     x2, #0x1                 // #1
   0x0000000000400c54 <+36>:    mov     x1, x0
   0x0000000000400c58 <+40>:    ldr     w0, [sp, #28]
   0x0000000000400c5c <+44>:    bl      0x405e10 <mq_send>
   0x0000000000400c60 <+48>:    str     w0, [sp, #60]
   0x0000000000400c64 <+52>:    ldr     w0, [sp, #60]
   0x0000000000400c68 <+56>:    ldp     x29, x30, [sp], #64
   0x0000000000400c6c <+60>:    ret
End of assembler dump.
(gdb) info b
No breakpoints or watchpoints.
(gdb) c
Continuing.

Program received signal SIGILL, Illegal instruction.
0x0000000000400c30 in send ()
(gdb) x/10x 0x400c30
0x400c30 <send>:    0xd42000a0   0xfd030091      0xe01f00b9      0xe16f0039
0x400c40 <send+16>: 0xff1700f9   0xff1b00f9      0xe06f0091      0x03008052
0x400c50 <send+32>: 0x220080d2   0xe10300aa
(gdb) disassemble 0x400c30
Dump of assembler code for function send:
=> 0x0000000000400c30 <+0>:     .inst   0xa00020d4 ; undefined
   0x0000000000400c34 <+4>:     mov     x29, sp
   0x0000000000400c38 <+8>:     str     w0, [sp, #28]
   0x0000000000400c3c <+12>:    strb    w1, [sp, #27]
   0x0000000000400c40 <+16>:    str     xzr, [sp, #40]

Signed-off-by: junhua huang <huang.junhua@zte.com.cn>
Link: https://lore.kernel.org/r/202212021511106844809@zte.com.cn
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-05 14:03:09 +00:00
Jisheng Zhang
67bc5b2d6d arm64: alternatives: add __init/__initconst to some functions/variables
apply_alternatives_vdso(), __apply_alternatives_multi_stop() and
kernel_alternatives are not needed after booting, so mark the two
functions as __init and the var as __initconst.

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
Link: https://lore.kernel.org/r/20221202161859.2228-1-jszhang@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-05 13:47:06 +00:00
Marc Zyngier
58ff6569bc KVM: arm64: PMU: Fix period computation for 64bit counters with 32bit overflow
Fix the bogus masking when computing the period of a 64bit counter
with 32bit overflow. It really should be treated like a 32bit counter
for the purpose of the period.

Reported-by: Ricardo Koller <ricarkol@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/Y4jbosgHbUDI0WF4@google.com
2022-12-05 12:05:51 +00:00
Arnd Bergmann
8bc638ea67 Apple SoC DT updates for 6.2 (v2).
This includes:
 * L1/L2 cache topology for t600x
 * CPUfreq nodes for t8103/t600x
 * DT binding for CPUfreq
 * Associated MAINTAINERS update
 
 The CPUfreq driver was already merged for 6.2 via its tree.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSByI3Ki0mXziclZJcd+FPLCI8zYgUCY4wjTAAKCRAd+FPLCI8z
 YpOSAP9cRxrug+82UVjMWkrstNQp4oYPIxLnDKZQeeT5HWqMfwD6AwpuhZLDl04v
 n4zzccTJAVJJWJZi961Cw9/9Zb0bRw0=
 =MXJs
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmOMilAACgkQmmx57+YA
 GNlgnRAAptAAmfA2fxjAMM2hmgWfknj1/2JVtRdUzRUVvJbZ19y5rIOb0T06x3iH
 FktUge4oK0QLt9y4zzmS4dEg3zUEPFqHR4TEDfgZM78Q7lIUclM6ncuKuXeys2pS
 rj/8EwrXYyE4l9GrDEbv7dswxsR1CT+RPpbHUVIRhQy7eJenv/BV9din244VajE4
 HpQt0wxp8op7NVPc4S+bbOsyY+0KH3LtSP8D+09Xjg6f3fGvBylzIqxKRJbmBgsJ
 MdjBZaWe6bxvhrAqojpuddtGhAy7atDb7VhGBjeIiPW1wnBAKmBGdHgYQvWOuxMG
 /4W6mwtjQf+JGG/y7D3QALKzlr4Ll75VUUF1ikBLv1od3XS6omQ6SsFNeYBvLG44
 QyYkRgyVav6txfYgWZVQZwU8c9YGf/CIgf09NHoESNq/3fswBzbMogZ9gWnueDQ4
 wwIh3gRHbjXYEwHF+k/U8KbEFvf73vK2VWITgse+fg7zIG5ir/zt/RAYjW8awAMM
 vEKHRaeBCgttYkiCc/ao4MmxEhVGZX9+SmPzYMjVLTndng2Hc7d9KOBBWil+S9DI
 pTqN39ZOjN5y6DTCQYYtoolq4CWOKmXZfnMKp41J641c5Yj7bfs597uuMVz/wkfG
 OZgfRSUQ9HHK4UpiDtj+fcA6EaXJYg34JbFa4wzywFrkm/tI/sQ=
 =L7ez
 -----END PGP SIGNATURE-----

Merge tag 'asahi-soc-dt-6.2-v2' of https://github.com/AsahiLinux/linux into soc/dt

Apple SoC DT updates for 6.2 (v2).

This includes:
* L1/L2 cache topology for t600x
* CPUfreq nodes for t8103/t600x
* DT binding for CPUfreq
* Associated MAINTAINERS update

The CPUfreq driver was already merged for 6.2 via its tree.

* tag 'asahi-soc-dt-6.2-v2' of https://github.com/AsahiLinux/linux:
  arm64: dts: apple: Add CPU topology & cpufreq nodes for t600x
  arm64: dts: apple: Add CPU topology & cpufreq nodes for t8103
  dt-bindings: cpufreq: apple,soc-cpufreq: Add binding for Apple SoC cpufreq
  MAINTAINERS: Add entries for Apple SoC cpufreq driver
  arm64: dts: apple: Add t600x L1/L2 cache properties and nodes

Link: https://lore.kernel.org/r/a9353121-7fed-fde7-6f40-939a65bfeefb@marcan.st
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-12-04 12:53:51 +01:00
Hector Martin
d32c1530c7 arm64: dts: apple: Add CPU topology & cpufreq nodes for t600x
Add the missing CPU topology/capacity information and the cpufreq nodes,
so we can have CPU frequency scaling and the scheduler has the
information it needs to make the correct decisions.

As with t8103, boost states are commented out pending PSCI/etc support
for deep sleep states.

Reviewed-by: Sven Peter <sven@svenpeter.dev>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-12-04 13:31:59 +09:00
Johan Hovold
f446022b93 arm64: dts: qcom: sc8280xp: fix UFS reference clocks
There are three UFS reference clocks on SC8280XP which are used as
follows:

 - The GCC_UFS_REF_CLKREF_CLK clock is fed to any UFS device connected
   to either controller.

 - The GCC_UFS_1_CARD_CLKREF_CLK and GCC_UFS_CARD_CLKREF_CLK clocks
   provide reference clocks to the two PHYs.

Note that this depends on first updating the clock driver to reflect
that all three clocks are sourced from CXO. Specifically, the UFS
controller driver expects the device reference clock to have a valid
frequency:

	ufshcd-qcom 1d84000.ufs: invalid ref_clk setting = 0

Fixes: 152d1faf1e ("arm64: dts: qcom: add SC8280XP platform")
Fixes: 8d6b458ce6 ("arm64: dts: qcom: sc8280xp: fix ufs_card_phy ref clock")
Fixes: f3aa975e23 ("arm64: dts: qcom: sc8280xp: correct ref clock for ufs_mem_phy")
Link: https://lore.kernel.org/lkml/Y2OEjNAPXg5BfOxH@hovoldconsulting.com/
Cc: stable@vger.kernel.org	# 5.20
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221104092045.17410-2-johan+linaro@kernel.org
2022-12-02 11:16:09 -06:00
Johan Hovold
0922df8f52 arm64: dts: qcom: sc8280xp: fix PCIe DMA coherency
The devices on the SC8280XP PCIe buses are cache coherent and must be
marked as such to avoid data corruption.

A coherent device can, for example, end up snooping stale data from the
caches instead of using data written by the CPU through the
non-cacheable mapping which is used for consistent DMA buffers for
non-coherent devices.

Note that this is much more likely to happen since commit c44094eee3
("arm64: dma: Drop cache invalidation from arch_dma_prep_coherent()")
that was added in 6.1 and which removed the cache invalidation when
setting up the non-cacheable mapping.

Marking the PCIe devices as coherent specifically fixes the intermittent
NVMe probe failures observed on the Thinkpad X13s, which was due to
corruption of the submission and completion queues. This was typically
observed as corruption of the admin submission queue (with well-formed
completion):

	could not locate request for tag 0x0
	nvme nvme0: invalid id 0 completed on queue 0

or corruption of the admin or I/O completion queues (malformed
completion):

	could not locate request for tag 0x45f
	nvme nvme0: invalid id 25695 completed on queue 25965

presumably as these queues are small enough to not be allocated using
CMA which in turn make them more likely to be cached (e.g. due to
accesses to nearby pages through the cacheable linear map). Increasing
the buffer sizes to two pages to force CMA allocation also appears to
make the problem go away.

Fixes: 813e831570 ("arm64: dts: qcom: sc8280xp/sa8540p: add PCIe2-4 nodes")
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221124142501.29314-1-johan+linaro@kernel.org
2022-12-02 11:10:18 -06:00
Bjorn Andersson
c967c73c06 Merge branch 'arm64-fixes-for-6.1' into HEAD
Mergeback arm64-fixes-for-6.1 to avoid merge conflicts.
2022-12-02 11:09:58 -06:00
Herbert Xu
14386d4713 crypto: Prepare to move crypto_tfm_ctx
The helper crypto_tfm_ctx is only used by the Crypto API algorithm
code and should really be in algapi.h.  However, for historical
reasons many files relied on it to be in crypto.h.  This patch
changes those files to use algapi.h instead in prepartion for a
move.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2022-12-02 18:12:40 +08:00
Linus Torvalds
355479c70a Final EFI fix for v6.1
- Revert runtime service sync exception recovery on arm64
 -----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEE+9lifEBpyUIVN1cpw08iOZLZjyQFAmOIsLoACgkQw08iOZLZ
 jyQspgv7BFM/z+PXeKCPee6uGUhNCjUoKP3Pnoo9jwe3sbSVagYUZZ5/vx01Ei33
 FHDi4FeSxo+adg2tb8xf8X5tZmfHYiQM5gEqK3xZXaBSJRT7FFY9+eRL6753Qe5W
 yxn220/nI9xTErGeEAabAHIngIOpth5nGQhRDQbM8r7EZDobGUu0NrJSRVnS7IBF
 Ov14VMkfqryInnJ8tzHwP4hz40Rrkf54dgNTPyJvUxJ3LCR5TqmeRp+16CZg87By
 CnmySayLnr+YLbZjp8vmQy9eUGVf4acPoDcXfBTe/lkE1BA4Qi+Hd/TaYgE8Fj0C
 B5g+sZa3khhaQc4Oc2RMOqpxK80DK41n1Vvy1UOZGOBFgZVoxT2bmDbAPohLyU/4
 lw6LqioDR2N4ZxiANGHuOVa8so8iY+Et30fLqRkeXj1TXqC84tDoxXGhsTEjF1Ad
 Vi0GGmrj4No4l0RM+4yGZIhNMaMGd5OhGdbwAiKUaLS9UyjvfqkaLGJ9S2wYVgZj
 R1PoDRWX
 =r/C6
 -----END PGP SIGNATURE-----

Merge tag 'efi-fixes-for-v6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi

Pull EFI fix from Ard Biesheuvel:
 "A single revert for some code that I added during this cycle. The code
  is not wrong, but it should be a bit more careful about how to handle
  the shadow call stack pointer, so it is better to revert it for now
  and bring it back later in improved form.

  Summary:

   - Revert runtime service sync exception recovery on arm64"

* tag 'efi-fixes-for-v6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
  arm64: efi: Revert "Recover from synchronous exceptions ..."
2022-12-01 11:25:11 -08:00
Will Deacon
acb3f4bc21 arm64/sysreg: Remove duplicate definitions from asm/sysreg.h
With the new-fangled generation of asm/sysreg-defs.h, some definitions
have ended up being duplicated between the two files.

Remove these duplicate definitions, and consolidate the naming for
GMID_EL1_BS_WIDTH.

Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 17:31:12 +00:00
Hector Martin
3e895a6460 arm64: dts: apple: Add CPU topology & cpufreq nodes for t8103
Add the missing CPU topology/capacity information and the cpufreq nodes,
so we can have CPU frequency scaling and the scheduler has the
information it needs to make the correct decisions.

Boost states are commented out, as they are not yet available (that
requires CPU deep sleep support, to be eventually done via PSCI).
The driver supports them fine; the hardware will just refuse to ever
go into them at this time, so don't expose them to users until that's
done.

Acked-by: Marc Zyngier <maz@kernel.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-12-02 01:28:10 +09:00
James Morse
fa05772297 arm64/sysreg: Convert ID_DFR1_EL1 to automatic generation
Convert ID_DFR1_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-39-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:17 +00:00
James Morse
d044a9fbac arm64/sysreg: Convert ID_DFR0_EL1 to automatic generation
Convert ID_DFR0_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221130171637.718182-38-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:17 +00:00
James Morse
58e010516e arm64/sysreg: Convert ID_AFR0_EL1 to automatic generation
Convert ID_AFR0_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-37-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
8a950efa1f arm64/sysreg: Convert ID_MMFR5_EL1 to automatic generation
Convert ID_MMFR5_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-36-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
f70a810e01 arm64/sysreg: Convert MVFR2_EL1 to automatic generation
Convert MVFR2_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-35-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
c9b718eda7 arm64/sysreg: Convert MVFR1_EL1 to automatic generation
Convert MVFR1_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-34-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
e79c94a2a4 arm64/sysreg: Convert MVFR0_EL1 to automatic generation
Convert MVFR0_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-33-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
039d372305 arm64/sysreg: Convert ID_PFR2_EL1 to automatic generation
Convert ID_PFR2_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-32-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
1224308075 arm64/sysreg: Convert ID_PFR1_EL1 to automatic generation
Convert ID_PFR1_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-31-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
fb0b8d1a24 arm64/sysreg: Convert ID_PFR0_EL1 to automatic generation
Convert ID_PFR0_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Signed-off-by: James Morse <james.morse@arm.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221130171637.718182-30-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
5ea58a1b5c arm64/sysreg: Convert ID_ISAR6_EL1 to automatic generation
Convert ID_ISAR6_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-29-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:16 +00:00
James Morse
f4e9ce12dd arm64/sysreg: Convert ID_ISAR5_EL1 to automatic generation
Convert ID_ISAR5_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-28-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
849cc9bd9f arm64/sysreg: Convert ID_ISAR4_EL1 to automatic generation
Convert ID_ISAR4_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-27-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
d07016c965 arm64/sysreg: Convert ID_ISAR3_EL1 to automatic generation
Convert ID_ISAR3_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-26-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
dfa70ae8d8 arm64/sysreg: Convert ID_ISAR2_EL1 to automatic generation
Convert ID_ISAR2_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-25-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
892386a6a8 arm64/sysreg: Convert ID_ISAR1_EL1 to automatic generation
Convert ID_ISAR1_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-24-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
258a96b25a arm64/sysreg: Convert ID_ISAR0_EL1 to automatic generation
Convert ID_ISAR0_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-23-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
5b380ae0e2 arm64/sysreg: Convert ID_MMFR4_EL1 to automatic generation
Convert ID_MMFR4_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-22-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
8fe2a9c578 arm64/sysreg: Convert ID_MMFR3_EL1 to automatic generation
Convert ID_MMFR3_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-21-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
fbfba88b6a arm64/sysreg: Convert ID_MMFR2_EL1 to automatic generation
Convert ID_MMFR2_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-20-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:15 +00:00
James Morse
7e2f00bea3 arm64/sysreg: Convert ID_MMFR1_EL1 to automatic generation
Convert ID_MMFR1_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-19-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
8893df290e arm64/sysreg: Convert ID_MMFR0_EL1 to automatic generation
Convert ID_MMFR0_EL1 to be automatically generated as per DDI0487I.a,
no functional changes.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-18-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
7587cdef55 arm64/sysreg: Extend the maximum width of a register and symbol name
32bit has multiple values for its id registers, as extra properties
were added to the CPUs. Some of these end up having long names, which
exceed the fixed 48 character column that the sysreg awk script generates.

For example, the ID_MMFR1_EL1.L1Hvd field has an encoding whose natural
name would be 'invalidate Iside only'. Using this causes compile errors
as the script generates the following:
 #define ID_MMFR1_EL1_L1Hvd_INVALIDATE_ISIDE_ONLYUL(0b0001)

Add a few extra characters.

Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-17-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
c6e155e8e5 arm64/sysreg: Standardise naming for MVFR2_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the MVFR2_EL1 register use lower-case for feature
names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-16-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
d3e1aa85b1 arm64/sysreg: Standardise naming for MVFR1_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the MVFR1_EL1 register use lower-case for feature
names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-15-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
a3aab94801 arm64/sysreg: Standardise naming for MVFR0_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the MVFR0_EL1 register use lower-case for feature
names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-14-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
d092106d73 arm64/sysreg: Standardise naming for ID_DFR1_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_DFR1_EL1 register have an _EL1 suffix.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-13-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
f4f5969e35 arm64/sysreg: Standardise naming for ID_DFR0_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_DFR0_EL1 register have an _EL1 suffix,
and use lower-case for feature names where the arm-arm does the same.

The arm-arm has feature names for some of the ID_DFR0_EL1.PerMon encodings.
Use these feature names in preference to the '8_4' indication of the
architecture version they were introduced in.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-12-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
1ecf3dcb13 arm64/sysreg: Standardise naming for ID_PFR2_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_PFR2_EL1 register have an _EL1 suffix.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-11-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:14 +00:00
James Morse
0a648056d6 arm64/sysreg: Standardise naming for ID_PFR1_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_PFR1_EL1 register have an _EL1 suffix,
and use lower case in feature names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-10-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
e0bf98fef3 arm64/sysreg: Standardise naming for ID_PFR0_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_PFR0_EL1 register have an _EL1 suffix,
and use lower case in feature names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-9-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
eef4344f77 arm64/sysreg: Standardise naming for ID_ISAR6_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_ISAR6_EL1 register have an _EL1 suffix.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-8-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
816c8638d8 arm64/sysreg: Standardise naming for ID_ISAR5_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_ISAR5_EL1 register have an _EL1 suffix.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-7-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
3f08e378f0 arm64/sysreg: Standardise naming for ID_ISAR4_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_ISAR4_EL1 register have an _EL1 suffix,
and use lower-case for feature names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-6-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
52b3dc559a arm64/sysreg: Standardise naming for ID_ISAR0_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_ISAR0_EL1 register have an _EL1 suffix,
and use lower-case for feature names where the arm-arm does the same.

To functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-5-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
7b24177c63 arm64/sysreg: Standardise naming for ID_MMFR5_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_MMFR5_EL1 register have an _EL1 suffix.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-4-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
5ea1534ec3 arm64/sysreg: Standardise naming for ID_MMFR4_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates.

Ensure symbols for the ID_MMFR4_EL1 register have an _EL1 suffix,
and use lower case in feature names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-3-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
James Morse
37622bae3d arm64/sysreg: Standardise naming for ID_MMFR0_EL1
To convert the 32bit id registers to use the sysreg generation, they
must first have a regular pattern, to match the symbols the script
generates. The scripts would like to follow exactly what is in the
arm-arm, which uses lower case for some of these feature names.

Ensure symbols for the ID_MMFR0_EL1 register have an _EL1 suffix,
and use lower case in feature names where the arm-arm does the same.

No functional change.

Signed-off-by: James Morse <james.morse@arm.com>
Link: https://lore.kernel.org/r/20221130171637.718182-2-james.morse@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-12-01 15:53:13 +00:00
Ard Biesheuvel
7572ac3c97 arm64: efi: Revert "Recover from synchronous exceptions ..."
This reverts commit 23715a26c8, which introduced some code in
assembler that manipulates both the ordinary and the shadow call stack
pointer in a way that could potentially be taken advantage of. So let's
revert it, and do a better job the next time around.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2022-12-01 14:48:26 +01:00
Jann Horn
d6c494e8ee vdso/timens: Refactor copy-pasted find_timens_vvar_page() helper into one copy
find_timens_vvar_page() is not architecture-specific, as can be seen from
how all five per-architecture versions of it are the same.

(arm64, powerpc and riscv are exactly the same; x86 and s390 have two
characters difference inside a comment, less blank lines, and mark the
!CONFIG_TIME_NS version as inline.)

Refactor the five copies into a central copy in kernel/time/namespace.c.

Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20221130115320.2918447-1-jannh@google.com
2022-12-01 11:35:40 +01:00
Bhupesh Sharma
8f345960ce
arm64: defconfig: Enable Qualcomm SM6115 / SM4250 GCC and Pinctrl
Enable the Qualcomm SM6115 / SM4250 TLMM pinctrl and GCC clock drivers.
They need to be builtin to ensure that the UART is allowed to probe
before user space needs a console.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Acked-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221128200834.1776868-1-bhupesh.sharma@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-30 17:49:05 +01:00
Arnd Bergmann
f8a9f2704a This pull request contains Broadcom ARM64-based SoCs Device Tree updates
for 6.2, please pull the following:
 
 - Rafal describes the timer/watchdog block for the BCM4908 and BCM6858
   SoCs
 
 - Krzysztof corrects invalid "reg" properties for the memory nodes that
   were off by one digit
 
 - Pierre updates a number of cache Device Tree node properties to be
   schema compliant
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEm+Rq3+YGJdiR9yuFh9CWnEQHBwQFAmOGWkoACgkQh9CWnEQH
 BwTM3hAAz6n7Ncc6ZU+v+sUkfGw5mHYr8tO0SM+nFADGxqd1Rjs+rdyoAxVWnKOY
 tC/9Y+l66JmPrwlXJN9dFnRoUjAv8zp09R34ptTpvkBXs5VSC1tppknw14fRQsXk
 xZl0oz+TNzoWkb2fWXx8uQdM3WX/R/cfs52kbxVobx2Z27BXSZs8em9PjFRqNKed
 1fHHTFuD7JAQX8g575W4vkcP8k0vA4yAGpZdqekAo2A8FaZhQ/DnOszUEQuQNjn2
 Wr8Arl8vrBJS8LXBPjPPIzKQlE5+8khR1ESLS+11MKSaP4zTRAB+elpPsiWkqqDv
 BfwQVFQs7KCNoPV6WqsltiIoh4/uP70dwUapF9Tye0MqhZ4ZH4C8PBCh8b80H5Wb
 h1T78x+6SnzH0rlPjssdfHKNWVSubUvnU7deNA84OrNpxJCrdi5eNf3gZytaU480
 550wkDBBuiffYdXplw5LCjxyKIcJ3KoLVyHqQkQ4sCinC8hDWzcA/oOeiAZyedwf
 P/cDs+JlOyDwSdeQMkMmaDtKoW8oVaQ6+v9BBKNBl+vvr4l1HlFeEtt30bDvQ6CT
 /cOdHhL/ki5FljPsRgF9Uf/Jp9jGF41Ph20Zo636ArQVG4pwGWM3hNTE/J3XSSzj
 jBHSdsm346iT55ajqci+5/TWlxUUBvhaIVuj203Q5Z5EAvfqJvY=
 =l7Fu
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmOHh+8ACgkQmmx57+YA
 GNm88xAAmR3TUNIQiN9ovK7Ibjp9OA+DLXJPDBdplPVB2Y4DigcYNshbJUdJI1He
 RLi8npUB3XccLS72tyZA76AYHFD5/zugf0y7erZQTw9eNesd4aXVWfVNWn5tJoVy
 4GfewjUg6EmP3kpBsXfKMZak5M8dggZONH0Lkpe7QkquKSut29ku9LxT3Y3Gtzs4
 ERNku3T4m7ozgp3LWYg5KHBuEpK2lPvC4hhZnP6+8sChfWJiJwONOWUeXz+P2z5p
 vkHQIoqbye42rnwc02gQk79EXmjS/ggEmaCJhU1sS9YnO7QSIC/5hGuQ+spc5Lob
 RDGRGDeFG71DbFOVYFWF9Aj1+hxqaY/lJrIRfgjwuxxzuItFMrYytXjZdYGHIoJu
 M+ZMt2/cHfQ/0tDA9bkDiK8OmN5D/61OqkAU/CeWwPYY4Ci+t3jkSZP3LI3P5wHV
 WB7UUxanM6g7uzaTINFkUAgx6Ljr8edW0pB6nrigei50BZwnRD7B5FbYEaPmbC9B
 um+BpnM06oE9+X+V4uh6iYnLBtRcpdLgWk7lzcgoLKyAxxVpyT6+qRBJ7vN/NVaR
 nOY7IGMXyTohCvitg4RTssP1vf1VoYEguw4NRdqpgRbeAFy6s8xxSDq7EXxfcRfF
 CJlMy7P+XXOKY7ZRi+1yNj/Un30ymRDE2yXrFbKjX9yIZj/0q6Q=
 =8S30
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc/for-6.2/devicetree-arm64' of https://github.com/Broadcom/stblinux into soc/dt

This pull request contains Broadcom ARM64-based SoCs Device Tree updates
for 6.2, please pull the following:

- Rafal describes the timer/watchdog block for the BCM4908 and BCM6858
  SoCs

- Krzysztof corrects invalid "reg" properties for the memory nodes that
  were off by one digit

- Pierre updates a number of cache Device Tree node properties to be
  schema compliant

* tag 'arm-soc/for-6.2/devicetree-arm64' of https://github.com/Broadcom/stblinux:
  arm64: dts: Update cache properties for broadcom
  arm64: dts: broadcom: trim addresses to 8 digits
  arm64: dts: broadcom: bcmbca: bcm6858: add TWD block
  arm64: dts: broadcom: bcmbca: bcm4908: add TWD block timer

Link: https://lore.kernel.org/r/20221129191755.542584-2-f.fainelli@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-30 17:42:23 +01:00
Arnd Bergmann
33423a8bd2 Armv8 Juno/FVP updates for v6.2
Just few addtions including updates to cache information on various
 platforms to align well with the bindings, addition of cache information
 on FVP Rev C model, addition of SPE to Foundation model and updates to
 LED node names.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmOF8SgACgkQAEG6vDF+
 4ph7uhAAs+XsDmozvzn6q7XtgEDAsSmuXSSmdLawW9dOWBm4h9yP+b0ShfHasSlN
 Z/tg/Erc2IGLW6bYwam0JGLyzast2ifOVJfCe1M7Whfep3j2o/SV2eN43qnjSwwp
 enryQNw7hF9ShEHtvvBqruHg8BWNQqCBvJRAKHtemcXeXhaad0b32y53ahdbzB0o
 FAGD/i2KRJeghlw2s0lw4+jiV+W5UodoEZ4WbxQJSjTcUyqeDLiqfhs0KoHTJjaM
 s8rHKHRxRr+Wctibf25JW5iiBhe7ON9rb+KRVubI0jp9LVauO+dzujnR2dP+SbUC
 wc61U2G0QEZof+QCSYfVVQbuJ1bLVUzl6hJMl+c5VHSBq6x75jCCHdCq9PlTlXGl
 nmBPVP5haDgO17WsJuO5absawsBJehihwC0JLkk6bWnm15+XE7NnMDDLZRHSNuU9
 zterk4LVN7d94o+/WwK8XeZtzFfFS4l0OlIDBYWoP0hljvHc/p4jXOh2vvFucPmN
 L/YORmb8Vrj2Ql0NY+NPiHt1MDFIOftcYSufBuzzMQJw3pYQAQMFHKc3rUxB6Xee
 6CAikSuBWWO7qdY9yP8Fk+GceLrACSk5C/1pJOA2cBQiLw1whYI+4RRzn0g+Su9Z
 VN5KU6tP44tE0625ip5wLwcV1TiBa7ghKCezav+4b+TUFxLM0Yw=
 =Of6J
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmOHhtEACgkQmmx57+YA
 GNkW1g//dZ1xCZ7m0Zduhqp6dfLkC9IUyhkguIba3HsKLL5A1t4E5/AfZM7befQr
 rWZZTeeGQtpBlWo0/X2BjtNkcyDH02fU3Mk7mM3raOO/MF+C0IEAmaLWOkiekgYf
 dHg5ig2GKVI71wPRtYa0JfwFztgnkhGdMS+PSvELxDlisziVwSaGYOW+1DEZibU6
 hMTOZzePFvaI7Q6iP9N6uyLLiLnddrg2ar37z2ummsMgxVd51Eoe6IPzEa2B3bWB
 KswrPcVZ2XTINiOleMN9kE8awsZJOacIiNXP8oluffcu/03tLlwv3UYr5RDddtp8
 9K2GtXJ1wzvqXbpHo4a1AMwPkgUbcFgLZSl9ypZZP+afwIxxfunr7Ca0gdwBI4GR
 5cCrEih9SXGeegrzMz4wa5f5PuxDyeyRHzFzpnDX5z+6+8Q85tGUdDa6cazoBQyS
 U11Ty+zu+6NGWVPGz3e6udaJUkkQfF1TO0Kb9EtmNhOh6avj0J4kQT9Vx7PeoXpW
 LRPlBt8TLktS7/9jpAvdk0cLkULRqjLlONDRhdrIzGwW3+fMGVyMyWCWnNSu6ia/
 M57KTbfZsuq1p223arIC4z6YHPe0JKl5fgEaYRl9fVf3YcMPhrwllsLom5/xf25S
 2K7scuKw/AGE+2GSvVgyqyeqeeu+OaYpYkhtXZHVEMBuvBir7Oo=
 =GlOv
 -----END PGP SIGNATURE-----

Merge tag 'juno-updates-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/dt

Armv8 Juno/FVP updates for v6.2

Just few addtions including updates to cache information on various
platforms to align well with the bindings, addition of cache information
on FVP Rev C model, addition of SPE to Foundation model and updates to
LED node names.

* tag 'juno-updates-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  ARM: dts: vexpress: align LED node names with dtschema
  arm64: dts: fvp: Add information about L1 and L2 caches
  arm64: dts: fvp: Add SPE to Foundation FVP
  arm64: dts: Update cache properties for Arm Ltd platforms
  arm64: dts: juno: Add thermal critical trip points

Link: https://lore.kernel.org/r/20221129115111.2464233-1-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-30 17:37:37 +01:00
Arnd Bergmann
3deeb5b079 mvebu dt64 for 6.2 (part 1)
Update cache properties for various Marvell SoCs
 Reserved memory for optee firmware
 Turris Mox (Armada 3720 based Socs)
  - Define slot-power-limit-milliwatt for PCIe
  - Add missing interrupt for RTC
 -----BEGIN PGP SIGNATURE-----
 
 iFwEABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCY4QBWgAKCRALBhiOFHI7
 1ffUAJiq2sF5b9zWtCHi/Wh2d9Ukz3hXAJ9YuSnzloWv8fY+uL4tomdjDB2iTQ==
 =ACvl
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmOHY1EACgkQmmx57+YA
 GNku0Q//T8vvCjLrfZ+dO6Z0CTaGavYLYXJYrMRl4lqKaiI92TZS46iqVVVoRWDD
 gicXwKaPM5QwsfNloMwPgxvpJddJO+1tVknaVuuhBhUKf0Yk+ooi7SYQDmOCKj5y
 SmvhRCJspfLrXKe8OY6h6knZX8r9wNdzxLs/XU+ZSQgpLcJfRGLLbYdgZ6gC4iHK
 pCp2ck/nPBEQAaQrmXGCKdfO389iOt/lo2qAxF7eJq+VJTjUL0bmsqeOaX32ROqE
 P48Bo3ggHuDUcZUzp5o7PZ1tpo76yeLnPnUVskA9UmfgiZMTNRf1NbOg88vSgVjs
 0oE6F1MaNuVNVKOlLi3ffiprC296Lxr+OJbqqTV0ze7CA2wL/WsIUAt+ydmzt4gl
 TpDYG+y442xF6fhevgGys3rTzLvlOldfXVm4wcQGz2afVdJQrAY9w8yOUjZG0O6w
 GRdOz7JTpYDqtOkltsTdZalNCF6hGE+HoMOodJrI8bMJJqfmAu0bs/1bfp/IEaJA
 NQelbB8lVMxl1hzThgs1avbiuzxup75w/rLxehjXgZkyYj5slESITmMlcPqDPovx
 CasENKqwEJygJrd+OfKYN+eWVG8uudbcEW0vcUxgm5vLvLQ4x3hbTcNpIDBCBmwZ
 p1Br4dDb1OatgnaohlIqvYtRNRZbi6i3Uf6vq+4Fx+B1yliUn5k=
 =N2XP
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-dt64-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/dt

mvebu dt64 for 6.2 (part 1)

Update cache properties for various Marvell SoCs
Reserved memory for optee firmware
Turris Mox (Armada 3720 based Socs)
 - Define slot-power-limit-milliwatt for PCIe
 - Add missing interrupt for RTC

* tag 'mvebu-dt64-6.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  arm64: dts: marvell: add optee FW definitions
  arm64: dts: Update cache properties for marvell
  arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC
  arm64: dts: armada-3720-turris-mox: Define slot-power-limit-milliwatt for PCIe

Link: https://lore.kernel.org/r/87fse39aer.fsf@BL-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-30 15:06:09 +01:00
Arnd Bergmann
bcbc468528 Qualcomm ARM64 DTS updates for 6.2
This introduces support for SM4250, SM6115, SM6375 and SDM670 platforms
 and Sony Xperia 10 IV, Google Pixel 3a, OnePlus 3, OnePlus 3T, Google
 Pazquel and OnePlus Nord N100.
 
 A wide variety of updates to align with DeviceTree bindings across
 many/most platforms is introduced, and incorrectly styled comments are
 adjusted across the tree.
 
 Apps RSC is added to the cluster-idle power-domain across SM8150,
 SM8250, SM8350 and SM8450, to ensure sleep and wake votes are flushed as
 the last core is being powered down.
 
 Remoteproc firmware patches are aligned with agreed upon structure used
 in linux-firmware across Inforce 6560, Lenovo Miix 630, various Sony
 Xperia devices and Samsung Galaxy Book2 (although these are not
 available in linux-firmware today).
 
 On IPQ8074 CPU clocks are added, thermal zones are introduced and vqmmc
 supply is specified for the HK01 board.
 
 Alcatel OneTouch Idol 3 gains LED nodes and Samsung Galaxy A3U gained
 vibrator support.
 
 The application subsystem's IOMMU and the display subsystem is enabled
 for MSM8953.
 
 A new CPU frequency table is introduced for MSM8996Pro, to properly
 describe it separate of MSM8996. The GPU opp-table is extended as well.
 
 On SC7180 USB is marked as a wakeup source, USB gains required-opps to
 ensure that the core voltage rail is voted for as needed. The
 description of the fingerprint sensor in Trogdor is corrected.
 
 On SC7280 Wake-on-WLAN is introduced, and PHY parameters for the SNPS
 USB PHY is defined across SC7280.
 
 The memory map across Google Herobrine is adjusted, to regain unused
 memory on the WiFi SKUs.  A LTE SKU of the Evoker board is introduced
 and the bard gains touchscreen.
 NVME support is disabled on Villager boards, as it's not used.
 
 PCIe support is introduced on SC8280XP, with NVMe, SDX55 (5G) and WiFi
 enabled on the Lenovo Thinkpad X13s and Compute Reference Device. ADCs
 and thermal zones are intrduced for the same. Lenovo Thinkpad X13s
 gains LID switch support.
 
 Fairphone FP3 gains touchscreen support.
 
 Support for Xiaomi Poco F1 variant with EBBG panel.
 
 The round-robin ADC is enabled across DB845c, OnePlus devices and
 Pocophone F1 devices.
 
 The displayport controller on SDM845 is introduced.
 
 SM6350 gains SDHCI support and on Sony Xperia 10 III sd-card,
 touchscreen and GPI DMA is enabled.
 
 Fairphone FP4 got SD-card support.
 
 UFS PHY register ranges are corrected across SM8150, SM8250, SM8350 and
 SM8450.
 
 Sony Xperia 1 II got NFC support and Sony Xperia 5 III got PMIC
 regulators defined and USB definition corrected, to enable USB3.
 
 The SDHCI controller is described for SM8450 and microSD support is
 enabled for the HDK and QRD devices.
 
 SM8450 also gains camera CCI interface and display clock controller.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmN/QfsVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FR8wP/3ynHPC8Kq/exZfb2n5M6gS3+3YZ
 BxwCcjcwMCMBwFZUZ4LPYDctd+TL8rJ0htnK9Foq61i8FJl2cUqvU/OKtfD3W9gO
 wTzZC1bZJItZCreb4T7Kj2t3hBhO5dkG+UgbovfOgk9tJXvgNbio66ZGJqKDtU92
 ubIAJxFERACERT9g6gtAdBa2BEofG/zI2ei8HqkKP/7u51XXtRNzVCYXyHM8TydL
 M03U6snZNJkkj+UM8Wzrg9mxkheAOSyo0nLK58Lje2I4CjV5WToCZUICqm7z7l36
 GoBnDXaRacmb0gIco9sGMo5K7jNqQ/6U1JVJRAb+NNM16fp0mKOboZ8SLKI9oT6g
 9UXiylzzz0buvNzzTu7HF8JRNQvxBnLKC+nE/ekWQm6uhsmJ9DkrMBnxn5fyZ1iL
 5uFXcaVDagVQCdHOfYntQzKEGsoPwg0KQJbjoM+T3tkQX5NcWVP+06uYLWqRxgk5
 jTn98JXK+2w4yYdhCKr8U71mBoWwoYwOZiEnZlL+P+52gZUoWDgA65BGnoqYk2cW
 2KsfB+EM3ggye6a4X/gVVuCR8bYO5+YIUyoBWLRKd51xw0Mr99KUc+ugTmCKGZpW
 31p/NhgdvfOK9qLRhEVH9zDT24Jqo1tRF2NgtJrFufMcYbdNbB8BA22aDLoTbE0m
 Kru1n0WaaU4vBIbm
 =0+lj
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmOHYjwACgkQmmx57+YA
 GNn21Q/7B5vrpo21COOlybRqhhAJYKo1kouED1EW4Fh1qQ0PejkDEU9CZYuvTNyw
 l0sFewhdpV9cEhSDm6nuk+wcs15r3tBp9fWWWBMbLLi+MohO0rY3Wi7ZIZDbK9N8
 B1UqkCASqLRYbny6kT0JztlhdEAHlEJ2Bc63pHhVYdj74xyLm+ByIgGV0o0fWhNM
 dUtJwz+W+uYMg/5OFj/UMLBvXFdDzz/LmYKS8UYP0sxmhOUJd1yTqxyqCxECWe6z
 OgGeB+2bQ297OyWdQjZk6tucZcjpP0y6qtL1PQaDtfqMVXsaDKNqa+C1eTvTEQWT
 tzOuWq4I5z7+vEe3JlKwHFmeblvD5FhNqUzyJabxXbTpe7m7sLbyeJdYaXXd6lmk
 0hBAJdSNNqAoIMMXUWwDxzaTDzKq648fteP0VZIC2B24iSRz6tt2FhLi6X1Lh0Tj
 LDHsbHvQIY3cFmYqIbgRt+lMxyy+pZWRuZFhMeIrNE1T4OQn2X3l5DlGAjUw2i51
 KXWUHeUSWWE39FyV/V72BDIPM/kGrESdJACko989ZinKdvKSyyz9Tl4qKsYUWAFH
 XZf3BvvsP20WKLvF79n500RBOh0J2uhTGTv6zphXXj5nRvv6NFiS1C+MWwaVnO4L
 HABmamTgb/rkP36J7nOD3iBQxuYG4i/hDLG66Zibhf9gqUDAWV4=
 =c209
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

Qualcomm ARM64 DTS updates for 6.2

This introduces support for SM4250, SM6115, SM6375 and SDM670 platforms
and Sony Xperia 10 IV, Google Pixel 3a, OnePlus 3, OnePlus 3T, Google
Pazquel and OnePlus Nord N100.

A wide variety of updates to align with DeviceTree bindings across
many/most platforms is introduced, and incorrectly styled comments are
adjusted across the tree.

Apps RSC is added to the cluster-idle power-domain across SM8150,
SM8250, SM8350 and SM8450, to ensure sleep and wake votes are flushed as
the last core is being powered down.

Remoteproc firmware patches are aligned with agreed upon structure used
in linux-firmware across Inforce 6560, Lenovo Miix 630, various Sony
Xperia devices and Samsung Galaxy Book2 (although these are not
available in linux-firmware today).

On IPQ8074 CPU clocks are added, thermal zones are introduced and vqmmc
supply is specified for the HK01 board.

Alcatel OneTouch Idol 3 gains LED nodes and Samsung Galaxy A3U gained
vibrator support.

The application subsystem's IOMMU and the display subsystem is enabled
for MSM8953.

A new CPU frequency table is introduced for MSM8996Pro, to properly
describe it separate of MSM8996. The GPU opp-table is extended as well.

On SC7180 USB is marked as a wakeup source, USB gains required-opps to
ensure that the core voltage rail is voted for as needed. The
description of the fingerprint sensor in Trogdor is corrected.

On SC7280 Wake-on-WLAN is introduced, and PHY parameters for the SNPS
USB PHY is defined across SC7280.

The memory map across Google Herobrine is adjusted, to regain unused
memory on the WiFi SKUs.  A LTE SKU of the Evoker board is introduced
and the bard gains touchscreen.
NVME support is disabled on Villager boards, as it's not used.

PCIe support is introduced on SC8280XP, with NVMe, SDX55 (5G) and WiFi
enabled on the Lenovo Thinkpad X13s and Compute Reference Device. ADCs
and thermal zones are intrduced for the same. Lenovo Thinkpad X13s
gains LID switch support.

Fairphone FP3 gains touchscreen support.

Support for Xiaomi Poco F1 variant with EBBG panel.

The round-robin ADC is enabled across DB845c, OnePlus devices and
Pocophone F1 devices.

The displayport controller on SDM845 is introduced.

SM6350 gains SDHCI support and on Sony Xperia 10 III sd-card,
touchscreen and GPI DMA is enabled.

Fairphone FP4 got SD-card support.

UFS PHY register ranges are corrected across SM8150, SM8250, SM8350 and
SM8450.

Sony Xperia 1 II got NFC support and Sony Xperia 5 III got PMIC
regulators defined and USB definition corrected, to enable USB3.

The SDHCI controller is described for SM8450 and microSD support is
enabled for the HDK and QRD devices.

SM8450 also gains camera CCI interface and display clock controller.

* tag 'qcom-arm64-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (261 commits)
  arm64: dts: qcom: sdm845-polaris: Don't duplicate DMA assignment
  arm64: dts: qcom: sm8350-sagami: Wire up USB regulators and fix USB3
  arm64: dts: qcom: sm8350-sagami: Add most RPMh regulators
  arm64: dts: qcom: sc7280: Make herobrine-audio-rt5682 mic dtsi's match more
  arm64: dts: qcom: trim addresses to 8 digits
  arm64: dts: msm8998: unify PCIe clock order withMSM8996
  arm64: dts: msm8998: add MSM8998 specific compatible
  arm64: dts: qcom: sc8280xp-x13s: enable WiFi controller
  arm64: dts: qcom: sc8280xp-x13s: enable modem
  arm64: dts: qcom: sc8280xp-x13s: enable NVMe SSD
  arm64: dts: qcom: sc8280xp-crd: enable WiFi controller
  arm64: dts: qcom: sc8280xp-crd: enable SDX55 modem
  arm64: dts: qcom: sc8280xp-crd: enable NVMe SSD
  arm64: dts: qcom: sc8280xp-crd: rename backlight and misc regulators
  arm64: dts: qcom: sa8295p-adp: enable PCIe
  arm64: dts: qcom: sc8280xp/sa8540p: add PCIe2-4 nodes
  arm64: dts: qcom: add sdm670 and pixel 3a device trees
  arm64: dts: qcom: sc7280: Add Google Herobrine WIFI SKU dts fragment
  arm64: dts: qcom: sc7280: Mark all Qualcomm reference boards as LTE
  arm64: dts: qcom: sm7225-fairphone-fp4: Enable SD card
  ...

Link: https://lore.kernel.org/r/20221124100650.1982448-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-30 15:01:31 +01:00
Jakub Kicinski
f2bb566f5c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
tools/lib/bpf/ringbuf.c
  927cbb478a ("libbpf: Handle size overflow for ringbuf mmap")
  b486d19a0a ("libbpf: checkpatch: Fixed code alignments in ringbuf.c")
https://lore.kernel.org/all/20221121122707.44d1446a@canb.auug.org.au/

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2022-11-29 13:04:52 -08:00
Arnd Bergmann
0c5f21291c
Merge tag 'v6.2-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into asahi-wip
New boards:
- Model A and blade baseboards for the SOQuartz (rk3568) SoM,
- Anberic RG351M, RG353V, RG353VS; Odroid Go Super, Advance gaming devices
- Odroid M1
- Theobroma px30 SoM with baseboard
- Rockchip's own rk3566 demo board

Some core support for per SoC specifics:
- crypto support for rk3399 and rk3328
- second I2S controller for rk3568
- Cache properties for follow the binding for rk3308 and rk3328

Bigger device support updates for:
- SOQuartz: PCIe2, video output, gpu, HDMI sound
- Rock 3A: eth regulator, eth clock input, Wifi+Bt, I2S, PCIe3

As well as some minor extensions for Rock960 (hdmi supplies),
rk3566-roc-pc (PCIe2), Rock 4C+ (thermal support), Pinephone Pro (Wifi+Bt)

* tag 'v6.2-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (51 commits)
  arm64: dts: rockchip: update cache properties for rk3308 and rk3328
  arm64: dts: rockchip: Add SOQuartz Model A baseboard
  dt-bindings: arm: rockchip: Add SOQuartz Model A
  arm64: dts: rockchip: Add SOQuartz blade board
  dt-bindings: arm: rockchip: Add SOQuartz Blade
  arm64: dts: rockchip: Add Anbernic RG351M
  arm64: dts: rockchip: Add Odroid Go Super
  arm64: dts: rockchip: Add Odroid Go Advance Black Edition
  dt-bindings: arm: rockchip: Add more RK3326 devices
  arm64: dts: rockchip: Move most of Odroid Go Advance DTS into a DTSI
  arm64: dts: rockchip: Add support of regulator for ethernet node on Rock 3A SBC
  arm64: dts: rockchip: Add support of external clock to ethernet node on Rock 3A SBC
  arm64: dts: rockchip: Add HDMI supplies on Rock960
  arm64: dts: rockchip: Add dts for rockchip rk3566 box demo board
  dt-bindings: rockchip: Add Rockchip rk3566 box demo board
  arm64: dts: rockchip: Enable PCIe 2 on SOQuartz CM4IO
  arm64: dts: rockchip: Enable HDMI sound on SOQuartz
  arm64: dts: rockchip: Enable video output and HDMI on SOQuartz
  arm64: dts: rockchip: Enable GPU on SOQuartz CM4
  arm64: dts: rockchip: enable pcie2 on rk3566-roc-pc
  ...

Link: https://lore.kernel.org/r/4716610.aeNJFYEL58@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-29 21:16:07 +01:00
Arnd Bergmann
c98ba78176 Renesas ARM DT updates for v6.2 (take three)
- Rename Renesas DTB overlay source files from .dts to .dtso.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCY38ywQAKCRCKwlD9ZEnx
 cGH3AQC4igRodFvol/vCc/W8g3aLMFVnjbBtnGornOOdISIMbgEAs/btGal9KOF1
 VrpCt01uo7/K5ToYT02u02XxN/VGTAU=
 =Zcrh
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmOGaC0ACgkQmmx57+YA
 GNkVog/8DBACmjQYgZ2/fYBneM2avBrxmsECloixr6T/7DVUiRhxB409p8im3Yuc
 PhNWLSv54FHngHNY6pfbGTVdRqLyZ3flF5s3rPoT4PiQ4hqfJUuFACLrjjyRCC6F
 punPRtLVauvEW9pW7rus/BjvuzTWEvaFUV6TZtI8fN8g6FHNn2KRjH2dOODp7+4J
 Ed0uTowrQw6j75k2PdGenBP0SuPlBCEg4lp7TQNpGrpebTO8mjHVgTpt1tXZrQKK
 nGk1bkeL86xP/G2LJXOBdhotPyidvKqN4SnD6OXZ6OZWmJgNs+BhEtSvonwYMURN
 47abR3BQU6xBo0DMEweesTxRXt+6qk3sjKCQXK1fmlhYzC4yJlu2354AhSOxpAcZ
 CnmLs2lnJjr6ZjM5SIJ/ps12tZpMzVNPsnzPRiYc3cFMTRZCp7s8jxQhPwpViYdf
 bzPLLXsVY+vTUGVMPTNj7zRRuprRS35STMvpYP7+7CNjItCy7tw6NjpyC8H3hjaw
 B+ezq8hPFEsfeNLZl0cjctvGeH1VkT+rcYv4z34TlezZOfpR4TgaYbAN7ii4x/Va
 gtgFs83zEOJTKbZ02YMypQ8NFzD5K7w30wtaZ+SJheuMEeEbiIOj1oz/GTLk4aUI
 xjz8HzrxCzG/2hzMDdJ7DLt6hgxI998L15BzAM95z4YB41ZfI8w=
 =zglD
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm-dt-for-v6.2-tag3' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt

Renesas ARM DT updates for v6.2 (take three)

  - Rename Renesas DTB overlay source files from .dts to .dtso.

* tag 'renesas-arm-dt-for-v6.2-tag3' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  arm64: dts: renesas: Rename DTB overlay source files from .dts to .dtso

Link: https://lore.kernel.org/r/cover.1669283381.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-29 21:14:36 +01:00
Krzysztof Kozlowski
89f53acc11 arm64: dts: altera: align LED node names with dtschema
The node names should be generic and DT schema expects certain pattern:

  altera/socfpga_stratix10_socdk.dtb: leds: 'hps0', 'hps1', 'hps2' do not match any of the regexes: '(^led-[0-9a-f]$|led)', 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
2022-11-29 10:20:58 -06:00
Mark Brown
1192b93ba3 arm64/fp: Use a struct to pass data to fpsimd_bind_state_to_cpu()
For reasons that are unclear to this reader fpsimd_bind_state_to_cpu()
populates the struct fpsimd_last_state_struct that it uses to store the
active floating point state for KVM guests by passing an argument for
each member of the structure. As the richness of the architecture increases
this is resulting in a function with a rather large number of arguments
which isn't ideal.

Simplify the interface by using the struct directly as the single argument
for the function, renaming it as we lift the definition into the header.
This could be built on further to reduce the work we do adding storage for
new FP state in various places but for now it just simplifies this one
interface.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-9-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
8c845e2731 arm64/sve: Leave SVE enabled on syscall if we don't context switch
The syscall ABI says that the SVE register state not shared with FPSIMD
may not be preserved on syscall, and this is the only mechanism we have
in the ABI to stop tracking the extra SVE state for a process. Currently
we do this unconditionally by means of disabling SVE for the process on
syscall, causing userspace to take a trap to EL1 if it uses SVE again.
These extra traps result in a noticeable overhead for using SVE instead
of FPSIMD in some workloads, especially for simple syscalls where we can
return directly to userspace and would not otherwise need to update the
floating point registers. Tests with fp-pidbench show an approximately
70% overhead on a range of implementations when SVE is in use - while
this is an extreme and entirely artificial benchmark it is clear that
there is some useful room for improvement here.

Now that we have the ability to track the decision about what to save
seprately to TIF_SVE we can improve things by leaving TIF_SVE enabled on
syscall but only saving the FPSIMD registers if we are in a syscall.
This means that if we need to restore the register state from memory
(eg, after a context switch or kernel mode NEON) we will drop TIF_SVE
and reenable traps for userspace but if we can just return to userspace
then traps will remain disabled.

Since our current implementation and hence ABI has the effect of zeroing
all the SVE register state not shared with FPSIMD on syscall we replace
the disabling of TIF_SVE with a flush of the non-shared register state,
this means that there is still some overhead for syscalls when SVE is in
use but it is very much reduced.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-8-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
bbc6172eef arm64/fpsimd: SME no longer requires SVE register state
Now that we track the type of the stored register state separately to
what is active in the task, it is valid to have the FPSIMD register
state stored while in streaming mode. Remove the special case handling
for SME when setting FPSIMD register state.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-7-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
a0136be443 arm64/fpsimd: Load FP state based on recorded data type
Now that we are recording the type of floating point register state we
are saving when we write the register state out to memory we can use
that information when we load from memory to decide which format to
load, bringing TIF_SVE into line with what we saved rather than relying
on TIF_SVE to determine what to load.

The SME state details are already recorded directly in the saved
SVCR and handled based on the information there.

Since we are not changing any of the save paths there should be no
functional change from this patch, further patches will make use of this
to optimise and clarify the code.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-6-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
62021cc36a arm64/fpsimd: Stop using TIF_SVE to manage register saving in KVM
Now that we are explicitly telling the host FP code which register state
it needs to save we can remove the manipulation of TIF_SVE from the KVM
code, simplifying it and allowing us to optimise our handling of normal
tasks. Remove the manipulation of TIF_SVE from KVM and instead rely on
to_save to ensure we save the correct data for it.

There should be no functional or performance impact from this change.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-5-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
deeb8f9a80 arm64/fpsimd: Have KVM explicitly say which FP registers to save
In order to avoid needlessly saving and restoring the guest registers KVM
relies on the host FPSMID code to save the guest registers when we context
switch away from the guest. This is done by binding the KVM guest state to
the CPU on top of the task state that was originally there, then carefully
managing the TIF_SVE flag for the task to cause the host to save the full
SVE state when needed regardless of the needs of the host task. This works
well enough but isn't terribly direct about what is going on and makes it
much more complicated to try to optimise what we're doing with the SVE
register state.

Let's instead have KVM pass in the register state it wants saving when it
binds to the CPU. We introduce a new FP_STATE_CURRENT for use
during normal task binding to indicate that we should base our
decisions on the current task. This should not be used when
actually saving. Ideally we might want to use a separate enum for
the type to save but this enum and the enum values would then
need to be named which has problems with clarity and ambiguity.

In order to ease any future debugging that might be required this patch
does not actually update any of the decision making about what to save,
it merely starts tracking the new information and warns if the requested
state is not what we would otherwise have decided to save.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-4-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
baa8515281 arm64/fpsimd: Track the saved FPSIMD state type separately to TIF_SVE
When we save the state for the floating point registers this can be done
in the form visible through either the FPSIMD V registers or the SVE Z and
P registers. At present we track which format is currently used based on
TIF_SVE and the SME streaming mode state but particularly in the SVE case
this limits our options for optimising things, especially around syscalls.
Introduce a new enum which we place together with saved floating point
state in both thread_struct and the KVM guest state which explicitly
states which format is active and keep it up to date when we change it.

At present we do not use this state except to verify that it has the
expected value when loading the state, future patches will introduce
functional changes.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-3-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Mark Brown
93ae6b01ba KVM: arm64: Discard any SVE state when entering KVM guests
Since 8383741ab2 (KVM: arm64: Get rid of host SVE tracking/saving)
KVM has not tracked the host SVE state, relying on the fact that we
currently disable SVE whenever we perform a syscall. This may not be true
in future since performance optimisation may result in us keeping SVE
enabled in order to avoid needing to take access traps to reenable it.
Handle this by clearing TIF_SVE and converting the stored task state to
FPSIMD format when preparing to run the guest.  This is done with a new
call fpsimd_kvm_prepare() to keep the direct state manipulation
functions internal to fpsimd.c.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-2-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 15:01:56 +00:00
Anshuman Khandual
cc91b94816 arm64/perf: Replace PMU version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
__armv8pmu_probe_pmu() returns if detected PMU is either not implemented or
implementation defined. Extracted ID_AA64DFR0_EL1_PMUVer value, when PMU is
not implemented is '0' which can be replaced with ID_AA64DFR0_EL1_PMUVer_NI
defined as '0b0000'.

Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-perf-users@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20221128025449.39085-1-anshuman.khandual@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-29 14:11:44 +00:00
Peter Collingbourne
c911f0d468 KVM: arm64: permit all VM_MTE_ALLOWED mappings with MTE enabled
Certain VMMs such as crosvm have features (e.g. sandboxing) that depend
on being able to map guest memory as MAP_SHARED. The current restriction
on sharing MAP_SHARED pages with the guest is preventing the use of
those features with MTE. Now that the races between tasks concurrently
clearing tags on the same page have been fixed, remove this restriction.

Note that this is a relaxation of the ABI.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221104011041.290951-8-pcc@google.com
2022-11-29 09:26:07 +00:00
Peter Collingbourne
d89585fbb3 KVM: arm64: unify the tests for VMAs in memslots when MTE is enabled
Previously we allowed creating a memslot containing a private mapping that
was not VM_MTE_ALLOWED, but would later reject KVM_RUN with -EFAULT. Now
we reject the memory region at memslot creation time.

Since this is a minor tweak to the ABI (a VMM that created one of
these memslots would fail later anyway), no VMM to my knowledge has
MTE support yet, and the hardware with the necessary features is not
generally available, we can probably make this ABI change at this point.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221104011041.290951-7-pcc@google.com
2022-11-29 09:26:07 +00:00
Catalin Marinas
d77e59a8fc arm64: mte: Lock a page for MTE tag initialisation
Initialising the tags and setting PG_mte_tagged flag for a page can race
between multiple set_pte_at() on shared pages or setting the stage 2 pte
via user_mem_abort(). Introduce a new PG_mte_lock flag as PG_arch_3 and
set it before attempting page initialisation. Given that PG_mte_tagged
is never cleared for a page, consider setting this flag to mean page
unlocked and wait on this bit with acquire semantics if the page is
locked:

- try_page_mte_tagging() - lock the page for tagging, return true if it
  can be tagged, false if already tagged. No acquire semantics if it
  returns true (PG_mte_tagged not set) as there is no serialisation with
  a previous set_page_mte_tagged().

- set_page_mte_tagged() - set PG_mte_tagged with release semantics.

The two-bit locking is based on Peter Collingbourne's idea.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Peter Collingbourne <pcc@google.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221104011041.290951-6-pcc@google.com
2022-11-29 09:26:07 +00:00
Catalin Marinas
2dbf12ae13 KVM: arm64: Simplify the sanitise_mte_tags() logic
Currently sanitise_mte_tags() checks if it's an online page before
attempting to sanitise the tags. Such detection should be done in the
caller via the VM_MTE_ALLOWED vma flag. Since kvm_set_spte_gfn() does
not have the vma, leave the page unmapped if not already tagged. Tag
initialisation will be done on a subsequent access fault in
user_mem_abort().

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
[pcc@google.com: fix the page initializer]
Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Peter Collingbourne <pcc@google.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221104011041.290951-4-pcc@google.com
2022-11-29 09:26:07 +00:00
Catalin Marinas
e059853d14 arm64: mte: Fix/clarify the PG_mte_tagged semantics
Currently the PG_mte_tagged page flag mostly means the page contains
valid tags and it should be set after the tags have been cleared or
restored. However, in mte_sync_tags() it is set before setting the tags
to avoid, in theory, a race with concurrent mprotect(PROT_MTE) for
shared pages. However, a concurrent mprotect(PROT_MTE) with a copy on
write in another thread can cause the new page to have stale tags.
Similarly, tag reading via ptrace() can read stale tags if the
PG_mte_tagged flag is set before actually clearing/restoring the tags.

Fix the PG_mte_tagged semantics so that it is only set after the tags
have been cleared or restored. This is safe for swap restoring into a
MAP_SHARED or CoW page since the core code takes the page lock. Add two
functions to test and set the PG_mte_tagged flag with acquire and
release semantics. The downside is that concurrent mprotect(PROT_MTE) on
a MAP_SHARED page may cause tag loss. This is already the case for KVM
guests if a VMM changes the page protection while the guest triggers a
user_mem_abort().

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
[pcc@google.com: fix build with CONFIG_ARM64_MTE disabled]
Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Peter Collingbourne <pcc@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221104011041.290951-3-pcc@google.com
2022-11-29 09:26:07 +00:00
Catalin Marinas
b0284cd29a mm: Do not enable PG_arch_2 for all 64-bit architectures
Commit 4beba9486a ("mm: Add PG_arch_2 page flag") introduced a new
page flag for all 64-bit architectures. However, even if an architecture
is 64-bit, it may still have limited spare bits in the 'flags' member of
'struct page'. This may happen if an architecture enables SPARSEMEM
without SPARSEMEM_VMEMMAP as is the case with the newly added loongarch.
This architecture port needs 19 more bits for the sparsemem section
information and, while it is currently fine with PG_arch_2, adding any
more PG_arch_* flags will trigger build-time warnings.

Add a new CONFIG_ARCH_USES_PG_ARCH_X option which can be selected by
architectures that need more PG_arch_* flags beyond PG_arch_1. Select it
on arm64.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
[pcc@google.com: fix build with CONFIG_ARM64_MTE disabled]
Signed-off-by: Peter Collingbourne <pcc@google.com>
Reported-by: kernel test robot <lkp@intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Steven Price <steven.price@arm.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221104011041.290951-2-pcc@google.com
2022-11-29 09:26:06 +00:00
Pierre Gondois
e567e58d68 arm64: dts: Update cache properties for broadcom
The DeviceTree Specification v0.3 specifies that the cache node
'compatible' and 'cache-level' properties are 'required'. Cf.
s3.8 Multi-level and Shared Cache Nodes
The 'cache-unified' property should be present if one of the
properties for unified cache is present ('cache-size', ...).

Update the Device Trees accordingly.

Acked-by: William Zhang <william.zhang@broadcom.com>
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Link: https://lore.kernel.org/r/20221122163208.3810985-3-pierre.gondois@arm.com
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
2022-11-28 15:37:41 -08:00
Marc Zyngier
64d6820d64 KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run
Userspace can play some dirty tricks on us by selecting a given
PMU version (such as PMUv3p5), restore a PMCR_EL0 value that
has PMCR_EL0.LP set, and then switch the PMU version to PMUv3p1,
for example. In this situation, we end-up with PMCR_EL0.LP being
set and spreading havoc in the PMU emulation.

This is specially hard as the first two step can be done on
one vcpu and the third step on another, meaning that we need
to sanitise *all* vcpus when the PMU version is changed.

In orer to avoid a pretty complicated locking situation,
defer the sanitisation of PMCR_EL0 to the point where the
vcpu is actually run for the first tine, using the existing
KVM_REQ_RELOAD_PMU request that calls into kvm_pmu_handle_pmcr().

There is still an obscure corner case where userspace could
do the above trick, and then save the VM without running it.
They would then observe an inconsistent state (PMUv3.1 + LP set),
but that state will be fixed on the first run anyway whenever
the guest gets restored on a host.

Reported-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-11-28 14:04:08 +00:00
Marc Zyngier
292e8f1494 KVM: arm64: PMU: Simplify PMCR_EL0 reset handling
Resetting PMCR_EL0 is a pretty involved process that includes
poisoning some of the writable bits, just because we can.

It makes it hard to reason about about what gets configured,
and just resetting things to 0 seems like a much saner option.

Reduce reset_pmcr() to just preserving PMCR_EL0.N from the host,
and setting PMCR_EL0.LC if we don't support AArch32.

Signed-off-by: Marc Zyngier <maz@kernel.org>
2022-11-28 14:04:08 +00:00
Anshuman Khandual
86815735aa KVM: arm64: PMU: Replace version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
kvm_host_pmu_init() returns when detected PMU is either not implemented, or
implementation defined. kvm_pmu_probe_armpmu() also has a similar situation.

Extracted ID_AA64DFR0_EL1_PMUVer value, when PMU is not implemented is '0',
which can be replaced with ID_AA64DFR0_EL1_PMUVer_NI defined as '0b0000'.

Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Marc Zyngier <maz@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-perf-users@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221128135629.118346-1-anshuman.khandual@arm.com
2022-11-28 14:04:08 +00:00
Rob Herring
83fb5b55cd arm64: dts: apple: Add t600x L1/L2 cache properties and nodes
The t600x CPU nodes are missing the cache hierarchy information. The
cache hierarchy on Arm can not be detected and needs to be described in
DT. The OS scheduler can make use of this information for scheduling
decisions.

The cache size information is based on various articles about the
processors. There's also an L3 system level cache (SLC). It's not
described here because SLCs typically have some MMIO interface which
would need to be described.

Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
2022-11-28 20:51:11 +09:00
Konstantin Porotchkin
99d2900f5f arm64: dts: marvell: add optee FW definitions
Add reserved memory and ARM firmware definitions for optee
memory region in Marvell Armada SoCs to avoid protected memory
access.

Signed-off-by: Konstantin Porotchkin <kostap@marvell.com>
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory Clement <gregory.clement@bootlin.com>
Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2022-11-28 01:23:11 +01:00
Pierre Gondois
b5d971cf17 arm64: dts: Update cache properties for marvell
The DeviceTree Specification v0.3 specifies that the cache node
'compatible' and 'cache-level' properties are 'required'. Cf.
s3.8 Multi-level and Shared Cache Nodes

The recently added init_of_cache_level() function checks
these properties. Add them if missing.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2022-11-28 01:23:11 +01:00
Pali Rohár
21aad8ba61 arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC
MCP7940MT-I/MNY RTC has connected interrupt line to GPIO2_5.

Fixes: 7109d817db ("arm64: dts: marvell: add DTS for Turris Mox")
Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2022-11-28 01:23:10 +01:00
Pali Rohár
3b730f48ac arm64: dts: armada-3720-turris-mox: Define slot-power-limit-milliwatt for PCIe
PCIe Slot Power Limit on Turris Mox is 10W.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2022-11-28 00:33:02 +01:00
Tanmay Shah
400f6af048 arm64: dts: xilinx: zynqmp: Add RPU subsystem device node
RPU subsystem can be configured in cluster-mode or split mode.
Also each r5 core has separate power domains.

Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
Acked-by: Michal Simek <michal.simek@amd.com>
Link: https://lore.kernel.org/r/20221114233940.2096237-3-tanmay.shah@amd.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
2022-11-25 09:10:06 -07:00
Mark Brown
d503d01e50 arm64/asm: Remove unused assembler DAIF save/restore macros
There are no longer any users of the assembler macros for saving and
restoring DAIF so remove them to prevent further users being added, there
are C equivalents available.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221123180209.634650-3-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-25 12:17:53 +00:00
Mark Brown
a8bf2fc43f arm64/kpti: Move DAIF masking to C code
We really don't want to take an exception while replacing TTBR1 so we mask
DAIF during the actual update. Currently this is done in the assembly
function idmap_cpu_replace_ttbr1() but it could equally be done in the only
caller of that function, cpu_replace_ttbr1(). This simplifies the assembly
code slightly and means that when working with the code around masking DAIF
flags there is one less piece of assembly code which needs to be considered.

While we're at it add a comment which makes explicit why we are masking
DAIF in this code.

There should be no functional effect.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221123180209.634650-2-broonie@kernel.org
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-25 12:17:52 +00:00
Ren Zhijie
223d3a0d30 arm64: armv8_deprecated: fix unused-function error
If CONFIG_SWP_EMULATION is not set and
CONFIG_CP15_BARRIER_EMULATION is not set,
aarch64-linux-gnu complained about unused-function :

arch/arm64/kernel/armv8_deprecated.c:67:21: error: ‘aarch32_check_condition’ defined but not used [-Werror=unused-function]
 static unsigned int aarch32_check_condition(u32 opcode, u32 psr)
                     ^~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

To fix this warning, modify aarch32_check_condition() with __maybe_unused.

Fixes: 0c5f416219 ("arm64: armv8_deprecated: move aarch32 helper earlier")
Signed-off-by: Ren Zhijie <renzhijie2@huawei.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20221124022429.19024-1-renzhijie2@huawei.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-25 12:16:22 +00:00
Mark Rutland
cfce092dae ftrace: arm64: remove static ftrace
The build test robot pointer out that there's a build failure when:

  CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y
  CONFIG_DYNAMIC_FTRACE_WITH_ARGS=n

... due to some mismatched ifdeffery, some of which checks
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS, and some of which checks
CONFIG_DYNAMIC_FTRACE_WITH_ARGS, leading to some missing definitions expected
by the core code when CONFIG_DYNAMIC_FTRACE=n and consequently
CONFIG_DYNAMIC_FTRACE_WITH_ARGS=n.

There's really not much point in supporting CONFIG_DYNAMIC_FTRACE=n (AKA
static ftrace). All supported toolchains allow us to implement
DYNAMIC_FTRACE, distributions all prefer DYNAMIC_FTRACE, and both
powerpc and s390 removed support for static ftrace in commits:

  0c0c52306f ("powerpc: Only support DYNAMIC_FTRACE not static")
  5d6a016349 ("s390/ftrace: enforce DYNAMIC_FTRACE if FUNCTION_TRACER is selected")

... and according to Steven, static ftrace is only supported on x86 to
allow testing that the core code still functions in this configuration.

Given that, let's simplify matters by removing arm64's support for
static ftrace. This avoids the problem originally reported, and leaves
us with less code to maintain.

Fixes: 26299b3f6b ("ftrace: arm64: move from REGS to ARGS")
Link: https://lore.kernel.org/r/202211212249.livTPi3Y-lkp@intel.com
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Link: https://lore.kernel.org/r/20221122163624.1225912-1-mark.rutland@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-25 12:11:50 +00:00
Eric Biggers
be8f6b6496 crypto: arm64/sm3 - fix possible crash with CFI enabled
sm3_neon_transform() is called via indirect function calls.  Therefore
it needs to use SYM_TYPED_FUNC_START instead of SYM_FUNC_START to cause
its type hash to be emitted when the kernel is built with
CONFIG_CFI_CLANG=y.  Otherwise, the code crashes with a CFI failure (if
the compiler didn't happen to optimize out the indirect call).

Fixes: c50d32859e ("arm64: Add types to indirect called assembly functions")
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2022-11-25 17:39:19 +08:00
Eric Biggers
e5e1c67e2f crypto: arm64/nhpoly1305 - eliminate unnecessary CFI wrapper
Since the CFI implementation now supports indirect calls to assembly
functions, take advantage of that rather than use a wrapper function.

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2022-11-25 17:39:19 +08:00
Lad Prabhakar
f8604f1f36 media: arm64: dts: renesas: aistarvision-mipi-adapter-2.1: Drop clock-names property
Now that the driver has been updated to drop fetching the clk reference by
name we no longer need the clock-names property in the ov5645 sensor node.

This is in preparation for removal for clock-names property from the DT
binding.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
2022-11-25 06:47:07 +00:00
Dave Airlie
d47f958083 Linux 6.1-rc6
-----BEGIN PGP SIGNATURE-----
 
 iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAmN6wAgeHHRvcnZhbGRz
 QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG0EYH/3/RO90NbrFItraN
 Lzr+d3VdbGjTu8xd1M+PRTmwh3zxLpB+Jwqr0T0A2gzL9B/D+AUPUJdrCVbv9DqS
 FLJAVqoeV20dNBAHSffOOLPsgCZ+Eu+LzlNN7Iqde0e8cyZICFMNktitui84Xm/i
 1NgFVgz9OZ6+aieYvUj3FrFq0p8GTIaC/oybDZrxYKcO8ZzKVMJ11swRw10wwq0g
 qOOECvV3w7wlQ8upQZkzFxItKFc7EexZI6R4elXeGSJJ9Hlc092dv/zsKB9dwV+k
 WcwkJrZRoezYXzgGBFxUcQtzi+ethjrPjuJuM1rYLUSIcfIW/0lkaSLgRoBu8D+I
 1GfXkXs=
 =gt6P
 -----END PGP SIGNATURE-----

Backmerge tag 'v6.1-rc6' into drm-next

Linux 6.1-rc6

This is needed for drm-misc-next and tegra.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2022-11-24 11:05:43 +10:00
Arnd Bergmann
2d5e7e2a3d Amlogic ARM64 DT changes for v6.2:
- meson-gxl: add SPI pinctrl nodes for CLK
 - meson-gxbb: add SPI pinctrl nodes for CLK
 - Enable active coling using gpio-fan on Odroid N2/N2+
 - remove clock-frequency from rtc
 - Update cache properties for amlogic
 - Add DDR PMU node for G12 series SoC
 - document Odroid Go Ultra compatible
 - add initial Odroid Go Ultra DTS
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmN86K8ACgkQd9zb2sjI
 SdHWiw/7BjNw/FookAd5wTQxedNqt6tCG3e8yxHwojJ7zz1pDKeq91ChkiyAom58
 jL+FSmUl8jfeZOM3CG15+iRqkYzKzpP0CPxnB0AgwajlbnyPHIAFenFRzBDXne8G
 +iz7ZMPv76tjLF6JVwBpw1VlNsO560Av62fTcZ4TVMT1zzgdoEFvys2cr7NKqsaG
 0dNxsQ7kNE0P4mctBh1hhgQW9uG3yJy69CdUXmB7rN0SH7Rxo4XwynFPw7A7rg8F
 qAS9Ay+8rWSXzRzAeXV29E8kPjDs57shZUK36YYgN7kunnCWhAT4iR3FO4x2ju42
 mKDp7JLjpTh7t1eJe9pZ7uJCmB6OZE6DfJ2Yl6jvCKDA8hOCSicrGiw3bi8KrsOF
 X+u1rMNRCwKUghbamvjEckYG2rXiK9XHk7pg1dK1ULJYVsn9L6DevjwH4xxPET9u
 CuGG1QCCVpGuXUc3ktQ16c22SuyrHqU4DhWNq68JUA39E55PY8dzSVF300USRYGi
 RD22cvAtq4czFrImmKtYuNI4leW4g31MW6tPAkE2Wd6FLUSAw1qpaePHvTyzj9Jp
 POzeDuoATkWSU19v/B/x0G2ua3JpX3MKGUR3BOf/sS6WErA4tqWyJXYp4Hd/+cdh
 HehH5ABUvsMoG6jkhCXNrApVvSbrF+TMIU7U6EiwYh5U6jhechI=
 =xXba
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN+DCAACgkQmmx57+YA
 GNko3Q//QJ8qcUCRHqU0neqCBYFxWo2LipNpnSHTHbWosG2jg8PXTk8zjiPqQJLE
 mgjOLiplT4dGn/uFANixW4CUx6gB1RvVw0O4gk8Lmg0E9Q3pb4h/G34+sYiaXb/e
 s2Oh1Y4r4prWj7OEREEKenuYeDoSC6pr2F4skj+rfgoI6LaFywPkiKszU7PrBPY7
 Dlvq8CTLNeBCglByN9k5yKwJPgC2aMn3jCREbmJ8jkey6licr+x1YgyRwB1/oXPj
 mb8f09eVW5D9wfNJpKecGoRFTH+7ZHrBbNLvv3Dvi43xFI9nkLJkCTWUyAI+zM6c
 BSOfEYTHPLdCKMuzLAaZW1XNGa2+Ws91cgV9bcmZJal4wRd2weKDZmbFCln2HC3R
 e+I+u0hXSUwuUlSqw5t/7xlFyP9xl6en4N4RwS6DwJy7X3rY9YQ3w0RcGf+TsqDe
 UD5OoTfeJrWbo4G5YnmZaLXlmY2PVyCRJ+U2TFfZrIBeXm5ouhBtjk1Tc+Yb1SmP
 xs/7DuzcIbMudjKzMJkaTAL0cKaWS9C2GKu1nMuz+qdgSku2oRuFxIR80ybAuq0A
 VIu8LPrACpDOPf4JN7/3xldtZt0q3fKY6zWz97qvN56XyREh9YXNgpaGFJ7n+xJk
 Ju0Tqn32DrWR2Rp/ONl3gQhBMZtkkAP5hjSqZvIASGjh9vxzuJ4=
 =RiK7
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-arm64-dt-for-v6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into soc/dt

Amlogic ARM64 DT changes for v6.2:
- meson-gxl: add SPI pinctrl nodes for CLK
- meson-gxbb: add SPI pinctrl nodes for CLK
- Enable active coling using gpio-fan on Odroid N2/N2+
- remove clock-frequency from rtc
- Update cache properties for amlogic
- Add DDR PMU node for G12 series SoC
- document Odroid Go Ultra compatible
- add initial Odroid Go Ultra DTS

* tag 'amlogic-arm64-dt-for-v6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  arm64: dts: amlogic: add initial Odroid Go Ultra DTS
  dt-bindings: amlogic: document Odroid Go Ultra compatible
  arm64: dts: meson: Add DDR PMU node
  arm64: dts: Update cache properties for amlogic
  arm64: dts: meson: remove clock-frequency from rtc
  arm64: dts: meson: Enable active coling using gpio-fan on Odroid N2/N2+
  arm64: dts: meson-gxbb: add SPI pinctrl nodes for CLK
  arm64: dts: meson-gxl: add SPI pinctrl nodes for CLK

Link: https://lore.kernel.org/r/8faa1d3c-5a17-2c3f-92d1-f8fe3df74131@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 13:03:44 +01:00
Arnd Bergmann
706450b5c3 Fixes to make the automated binding tools happier (node-names,
undocumented + unneeded properties) and fixes for non-working
 devices on some boards.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmN94lwQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgUJrB/4t+O8PYOt+5//D9I/3p5s4YczbkZzKCqKD
 +2oxMsBRSYY2kQoZcgSWxY5Z/IWwztVRdDOFmUYq6BexCdGQE6QrbLT+e1XXZP0b
 lbgfMaHKqGkQkFXRIG3K9ogHXPNes0u48ct2FYzJcbeKDd7Jm75l8n6n/k/xjh6h
 lkJap/nm5W/hhTowvLyOZpflVUreUrYyeZ87fh2n5favD4cNqUe4NqODRgBrCDkQ
 zXHcaFkOh6jF0sVtLE2gJVBJn7e4WkN5YhnHAOOypGepji/eQtzUjBq0D3SzfHTR
 jZZRzjFZlMBqKa3Mms71rRirgrQD9I3spzPYhnuPMwDShrbAY3Bm
 =yPZY
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN+B4cACgkQmmx57+YA
 GNlZJxAAvFCcT/9ZfOn2/AZscYC2/3FR75mJxCbWpHcIgJNMq+7tuhuAVcZOTD72
 0fat5eHq2GUT0DjESFxbuAbPP2YyXfXei47ADtaH9CESYjn5Gg6P0aKb2/GFKP+B
 O8s4vg6tHiebx8qkkr97wcOPrSjj/k1Ol8gXn/q3jyB52n4L2aG9j0nwygIWsjAn
 B0GhyLmcmpp+/VXWJll65eWeKf6k9FEnHSbupcyjGbdmcOaeETSyPsIMGbBH7dR3
 YmtBYZgufYMgiDbx4S50auej8vYBH1ryH27jLxb5VgMee87uk7gn0h3eDDR5gOPP
 EvHee5MORVTfz6zIDzSrSNq2jj9eLoOWhFusE4VImac63Imi8kpM0iiEQcM1gu/e
 69M42Xupi/fwx1Txb+zZxvj1UxQd/6GMEWpvCzgj7qRepAJyEkRPuczJPaSQ7rCd
 0Cvnu/jbE8gm36sVLc1rwcD/tmaZquBXzohxW5hcijhGgTo4mDhgA/tt7EvVdo4/
 ifWpNVBfNXaNFbLzG/4vZnuKWbotPcLD4GzSIJSExkP21EMDsWB6Qa2YSUOq0dM4
 bbn7LHvUrW6HbR/BFYsplE2/p3YVHgcbIDXz3OCQL4Ap0baI+gbNwYspDjbc007d
 bH7563ydwWfV6ccpnApE/Sbr4GT/+zdehLiFyno0QTV8ttpk7Dg=
 =/0fj
 -----END PGP SIGNATURE-----

Merge tag 'v6.1-rockchip-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/fixes

Fixes to make the automated binding tools happier (node-names,
undocumented + unneeded properties) and fixes for non-working
devices on some boards.

* tag 'v6.1-rockchip-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: Fix Pine64 Quartz4-B PMIC interrupt
  ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name
  arm64: dts: rockchip: fix ir-receiver node names
  ARM: dts: rockchip: fix ir-receiver node names
  arm64: dts: rockchip: fix adc-keys sub node names
  ARM: dts: rockchip: fix adc-keys sub node names
  arm: dts: rockchip: remove clock-frequency from rtc
  arm: dts: rockchip: fix node name for hym8563 rtc
  arm64: dts: rockchip: remove clock-frequency from rtc
  arm64: dts: rockchip: fix node name for hym8563 rtc
  arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency
  arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4 series
  arm64: dts: rockchip: fix quartz64-a bluetooth configuration
  arm64: dts: rockchip: add enable-strobe-pulldown to emmc phy on nanopi4
  arm64: dts: rockchip: remove i2c5 from rk3566-roc-pc
  arm64: dts: rockchip: Fix i2c3 pinctrl on rk3566-roc-pc
  arm64: dts: rockchip: Fix gmac failure of rgmii-id from rk3566-roc-pc
  arm64: dts: rockchip: Drop RK3399-Scarlet's repeated ec_ap_int_l definition

Link: https://lore.kernel.org/r/6274427.GXAFRqVoOG@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:44:07 +01:00
Arnd Bergmann
58fd11a796 TI K3 devicetree updates for v6.2
New Features:
 J721e:
 * PWMs, BeagleBone AI-64 platform.
 J721s2:
 * Crypto
 
 AM65/AM62:
 * General purpose Timer support (system timer is still arch timer)
 
 Fixes:
 * Bunch of fixes in crypto usage and GPIO intr
 * Minor schema related fixes for audio, addressing etc.
 
 Cleanups:
 * Refactor of device tree to "disable" peripherals at SoC level
   for nodes that are un-usable without board level properties.
   TI K3 devices have large number of peripherals of which only a
   smaller subset is actually enabled on platforms. Switching
   to this approach enables two benefits: lesser confusion in
   creating board level devicetrees as only relevant pinned out
   device nodes need enabled, as well as smaller board device
   trees as most un-used peripherals don't need to explicitly
   disabled.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmN8+zoACgkQ3bWEnRc2
 JJ0dsRAAmLcu03TUPFJbjHikmzD3a3MuUYdwU6ZboeapELZBgyNwVX4jsRUlomh4
 KH8bjUnOZsPFYwIviuQ1/vbcgypaDqu3f4neTYETycR+Q1cBr+1q7fgVS797oKDv
 D6AEMVcAHW47d3OyEWwe1XadPdk+m+KmGMz3ENunpPDQX0HxpZXgF8wYKH4pQI93
 giEn6oQUeTi/973StP+HrSPWtbMz6yAn7YFwoZeAdjrpb2cNAkGTwAj8UC+s7HgH
 7CuthRTVEfllyIx3pT5fc5UyaWVnf66epO+u5oXLXwvGYkLmdRZAcVdQmJ5PayW1
 IX4D//9aTWDpgcnIchMB5iFxxdz+ZI1mfsj7jFiP1vRYTmuCu7AjLBj96jx1KHlt
 2GhSqMiEEy5OkNtzpPSGwL9XFFVS+J/Kl1dnbJTJbnZGlc54XWvdeqBKx/GN8Kzv
 DrhSBfvBCVdv5A2qGqFPYe+MdrIikPQL5YtnPABGQB9NWpEeZ1gXzKky0qoY4aT9
 0B6J5B4G2srK0V5s4SC477jpktQ6LCq3GelKW2QJ5dsgu3Cqs1lzz21Zt4H/u4JL
 XFgKLkuLLbZKGuZBpWipgWcLDJPbKzWvORP+Ot/sfRSKOzFf1PooMRsneW494pTQ
 2CC/SmCmSDo/E2gwYUVWFVdBU8LK4ccy2e/Y8/pPYV+R7zOYZz4=
 =t5qJ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN+BgIACgkQmmx57+YA
 GNluWA//dZMdo2/ex+G4mkF9SISEmzuhL5ewjmTCRp92FLO68tCirLAHMy/DSb7i
 LiowRLLGH+vF0ddFC+fgzW8s3FI2KV7qppf+YaI6BiUFOUG2MeF/vVkoc7H8TnhG
 JTG9faIP29lXIZc7dYpElRkkUDwVaNbzN6L2RXQL97Juv9mINWjIOjmblfAj+Bf/
 f+K7ojQsALhRfWz4gAV4Voe9eSIzxBXoFyKpGIds1q2kAiEbzT4caFOHUuG8/WUG
 nYDYZcC1aRzrVR8SmF/043ERm041zYtqkGdp1GIamBulZEPdcFOWY0fyFQjlX1/q
 LMv4Z3KEm7y7mEDeWX5OoSaz2qKGQgQl2UJiteyck2B9MvuaLugya56lOusVnL8C
 1Jtw3fmEhU1BWwnD2+PMq7fJT8zsTCUDzc1+rY8XoDJe/KK51So3umCQ7olcbGdQ
 tNqLFCcDMBaEqko4hiHDwVxbc/Y9xolHtxNppXOxTThoDVgA2BzhkyY1AIogr+Sc
 h95h1Ye2B1m2RAUQrt6yFxol0Os6yB7DN2df+pfzK1vKepCAZwiUG+i+tZFWS40N
 daXvZlKeclZkGjaTwE0DXNZ1Iwo21x0pZwstslCvX8VM3f6st0+WhvJRMq3dfEIP
 NsQguzx3aR4CMUS9RG5UD4qda4wvoB90gJXRNX3WpIz8d9yfgy8=
 =jEEu
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-dt-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt

TI K3 devicetree updates for v6.2

New Features:
J721e:
* PWMs, BeagleBone AI-64 platform.
J721s2:
* Crypto

AM65/AM62:
* General purpose Timer support (system timer is still arch timer)

Fixes:
* Bunch of fixes in crypto usage and GPIO intr
* Minor schema related fixes for audio, addressing etc.

Cleanups:
* Refactor of device tree to "disable" peripherals at SoC level
  for nodes that are un-usable without board level properties.
  TI K3 devices have large number of peripherals of which only a
  smaller subset is actually enabled on platforms. Switching
  to this approach enables two benefits: lesser confusion in
  creating board level devicetrees as only relevant pinned out
  device nodes need enabled, as well as smaller board device
  trees as most un-used peripherals don't need to explicitly
  disabled.

* tag 'ti-k3-dt-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux: (61 commits)
  arm64: dts: ti: Add k3-j721e-beagleboneai64
  dt-bindings: arm: ti: Add bindings for BeagleBone AI-64
  arm64: dts: ti: k3-j721s2-main: Enable crypto accelerator
  arm64: dts: ti: k3-am64-main: Drop RNG clock
  arm64: dts: ti: k3-j721e-main: Drop RNG clock
  arm64: dts: ti: k3-am65-main: Drop RNG clock
  arm64: dts: ti: j721e-common-proc-board: Fix sound node-name
  arm64: dts: ti: k3-j721s2: Fix the interrupt ranges property for main & wkup gpio intr
  arm64: dts: ti: k3-j7200-mcu-wakeup: Drop dma-coherent in crypto node
  arm64: dts: ti: k3-j721e-main: Drop dma-coherent in crypto node
  arm64: dts: ti: k3-am65-main: Drop dma-coherent in crypto node
  arm64: dts: ti: k3-am62: Add general purpose timers for am62
  arm64: dts: ti: k3-am65: Add general purpose timers for am65
  arm64: dts: ti: k3-am65: Configure pinctrl for timer IO pads
  arm64: dts: ti: Trim addresses to 8 digits
  arm64: dts: ti: k3-j721e-sk: Add pinmux for RPi Header
  arm64: dts: ti: k3-j721e-main: Add dts nodes for EHRPWMs
  arm64: dts: ti: k3-am65: Enable McASP nodes at the board level
  arm64: dts: ti: k3-am65: Enable Mailbox nodes at the board level
  arm64: dts: ti: k3-am65: Enable PCIe nodes at the board level
  ...

Link: https://lore.kernel.org/r/20221122190209.jwfj56d6kxpxdkua@untreated
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 12:37:38 +01:00
Arnd Bergmann
5658baf2e3 Qualcomm ARM64 defconfig updates for 6.2
This enables more Qualcomm TLMM pinctrl drivers, and the Qualcomm crypto
 drivers.
 
 It makes the SC7180 and SM8450 interconnect drivers builtin, in order to
 ensure that a console will be registered before init needs it.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmN9MYYVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FWhYQAMe5DH0Bpf1cyPl4WIyIca0w/WlH
 z5e628vJfpsW6Nu+zg8VOkpRibI8w8lIx844aq5913FFpYIiiV4zeaHXmwpzZeFm
 GDuPh65thGhB5J5ytuAJPhgXuluLHLhXcMBaLqOUc5oEojp2j+3ga/IKxkgqRGn9
 5X6DxkVBXdsFNII7iPgeazqWKCSLaZuM7yXFJsgHxk6EeH5z4/1gIu9YQVWKvRFV
 HWudXoqoNZw4xQ0hllM9J3T9410JElIu3W87OngET3eZmmL7ela+/oKBA77azYCB
 5z0JXrJp1SRUoVhiKMUqQZ1FR5HRVbvUu7DT8nVGxRDkArJ1TikQbiH8Viv0K+2m
 02YVgtB2TFEZjx8SMJ1doawPmbvfEecJVJsjBOclugHKOAqO7do7Agqtg8hlNqGf
 9cmqUcVC3fHCMXsJKwY3dqqCQSElNoPE1AOHz43RjHo1l2XaCPGZDUbMd1wEOVUB
 fNX9IDp9s06YVzJsbJXmVOxV3npvL2ojVHMRECiGNQ8hKNyDWTh0WtgLS/InnKH/
 5o10Tk/kxGYK6IxHOIeuz4BLSf3Cpo91be7MgzEGlfICf2IfUBHPJGOcexkc+bRF
 COFgTkItuE74z1lGVwb7twUWzSGX3YmgwhYDXhaQdD+2dw3IRIZyWw5Gy+MKJt6h
 oULhqQljgiC35q18
 =mRnV
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN9/VUACgkQmmx57+YA
 GNlJxxAAvuQF8wjScIiLDDfTWum5wZZXu9orKBxx2CUpeTqAqnRrFxyU8xDEpMQf
 noUOpaoWNsbQhyJJVGf9Nb59mqcLbwttbnnrHMP2M3F4hvkMrVaYd2QOYpORNeia
 IbW98OdF43XGCDGSyjnYaU/dag36jpbyG6Wdy/3LIJgobAXOaD/biyVR09h39cXG
 vrarh2lQl2aURNpK///nPCSv8l+ueZAnOgIFOtyqI4B7SdGIrBoVcgWUKUZ+QeSh
 u0pILupBLUKihq6l0GrVlSmyBuMFUXqUztLES3drvrFesQJhAseFeA85ulJ2wAG3
 kJUd6d8D9SbJOSHmPtNr+zG/jHam3uNWt4qAB+icWypqAn2w6dPKvLqIxgpuTwWM
 ZvcY5zDyS/rEtiLgSUTtjjMqIZEz8nYuPDUD2WAxzvAOVDXnN8Qaw6SPx5YeW/J0
 PlN0xnMWyu0kwIy8BROpCi1dLVo5RkU8uSPcvnpSIVLHC5cZFPpPTfw3WzQ/LX5J
 LfGbSBLh7CqPPQyCNRPokT9chC9e4TmQQubKTnwKz+JzADRiYHQ1YJpbNEYukfgp
 74PjdYmbTuMkRFq81tPjk8NGA2YXbEO9MsUbMFKoRsWGa4KGcPvfBTvQWR+lJOPG
 uWN+TyYBrT3SogBsRZpmOQIh3izEVCUypTOWc6/OmD2Vv6X82e0=
 =wQQD
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-defconfig-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/defconfig

Qualcomm ARM64 defconfig updates for 6.2

This enables more Qualcomm TLMM pinctrl drivers, and the Qualcomm crypto
drivers.

It makes the SC7180 and SM8450 interconnect drivers builtin, in order to
ensure that a console will be registered before init needs it.

* tag 'qcom-arm64-defconfig-for-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: build-in Qualcomm SC7180 and SM8450 interconnects
  arm64: defconfig: Enable Qualcomm QCE crypto
  arm64: defconfig: enable rest of Qualcomm ARMv8 SoCs pinctrl drivers
2022-11-23 12:00:35 +01:00
Arnd Bergmann
f8d331698d arm64: TI K3 defconfig updates for v6.2
* Enable TI_TFP410 DVI bridge as module for J721e-sk platform
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmN897cACgkQ3bWEnRc2
 JJ1XPhAAiNOSD2g2MRpLX85S56D8fRrk2z1hPvrSoSNVGx8pwMTIJHNMNNtNq4Le
 6gcrcUcR9pB11+O+indum4cP4ttb2OiVhKH7fuK0CoWe6ITYCQ33MmgOWhVEBUtG
 glS4VOB3N1IpASUi8jU+4rS3dxdTiBJOBV7AAMByFw36Zhagq/cIfiLKruRuIzLn
 jaLMJT1LrI7cnwuoy8S/RT3uTzdsosjZlLa7cD+af+5EGSV9tGC6V+8r1DCdmmYB
 XRvlmFRJxtPcJdR7HPXdIzTXLN+FJKFTqERFf/aNN9Hb8oTiV6p81ztxEbgsZod5
 4cTCC2pM55iYzaEeKo5eOUjysDTEl4Y3lhhlytGX5B+ElubIj0ORH4wDclgmFkkx
 b6eiA4YUASO5mqivhvjg1gUVGFASK+LMrYF4//YdEZaXpDZsuYCw7ryRy4+Wpy7n
 5tNWr6r0N1RcZyD/EkVvwBTKij93BCoUOGL2tDSaq7+nTbNxnXhHARqWsL/6/eMG
 s7xgGuhWBG0aqikdHCFa4Tj6u0NRjx/mz2M/z8UdugHM6ZjWjvM6lTG0mcjk6AgQ
 J5aQFCHHcZ1lluKrSIm4Sos0AW4+HQYeYWWyvI+pw1n4xZxek9JpxsY2XAtPAl2C
 PX+yQ0cPHp7uNuAqH4M6qIojarNLghXtu4hNy2OMpSR28Uvet9Q=
 =R2oc
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN97bUACgkQmmx57+YA
 GNldaw/+K53YDHufaC1ZRwrX41Kn34LNehQqlJN1lFgBGktrS32zyEV2v8UIBuv6
 RtLZyrtZ8HAjVX2NX3a39tW40W+5bz7p/GNMxqFGVyUu4MpCH4oawNOWcRp4gRvG
 fhmj3oLRjzFyrWORPaQOA/Zmhr6JBQcfkEsAAZcsJzxk4op0vP8i5iN+ElONh/B7
 q8i3thXb83tUoThshFlsZc6rEv+1AFVYxX8cxfLA3Dl7K6j7MoTC0BZxcSlDoyxv
 5lgh6/+XuhbJn4YxkjPgFQ4ZNJKI0IYU2ChUKuqXGYDFdy+uevFjmiUOt+m9FeBg
 ZsfSRrimg3ghcZ24Sd7zDTgdtTR3kW4KD9D7C/c8eiVvKHgdqAvsmP+GmOc6DP2N
 LDZhtamhmKqCbMtHMacg+HogqaF76T1P0+XqBWybsT8nxk/6JrW5Pb1p6qlsqqQi
 u3yX+AEBTxKFi3jk2mhoe85/PdKWHMeGZztWm4Em/0+suNLQyAH1WmgbhRIJ4NFk
 H5KNVlhNL4xFhWilVi1hnc67aXen5ynzqmB7fRrL0IwvwYcD0psF1R2Q6AXYL03r
 YA06pKXOdKp9RgHa53cjLOqxp955TnX6LEV5KNHY2kynf2JY9DNBq58I6Tm3ZAim
 bnoSsKbWNq/n5s7e99NCT8qcyS+BqCA7Z/MST722Hu+RPHnOobA=
 =WG4b
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-config-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into arm/defconfig

arm64: TI K3 defconfig updates for v6.2

* Enable TI_TFP410 DVI bridge as module for J721e-sk platform

* tag 'ti-k3-config-for-v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: defconfig: Enable TI_TFP410 DVI bridge

Link: https://lore.kernel.org/r/20221122190233.63o3tjtkimlimgtq@armrest
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 10:53:56 +01:00
Arnd Bergmann
58e1a96d28 - enable missing drivers for to boot from MT8183 based chromebooks
-----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEUdvKHhzqrUYPB/u8L21+TfbCqH4FAmN7vCEXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQL21+TfbCqH5rAQ/+MSp4F4e+yYrN4XL9OV/O0Ltq
 YLFkIoiu5qh7mpeCY6qakgM9q1d7WLNIcBMfOvWDAtL5ZCBcOVUl+EAtwaMvKzxZ
 U0FlFFlGGD63n9H5QgiHrC6TIMOCnp/rdccUeu90K3pzkvuzJNKMwoLRpUTkZABv
 hCPhfeJnaz1WBXGy/wlcEWpP0wXjzGWR9WMaXtZToF8zk4df79NvfZWirFasxLP9
 npiZK6mNZMhRX0+91m0o1UYyDc0oN6qE7zPCjtJ1JKmACclQ8+3YrsVFxnRlMkpi
 5zkV6SzeOQox/vM0iwYi5qQYwCzQA60B7eYhqUnnePy7gUoO3QA11526s7gwXuKu
 dFXUHRDM2DWeEKY/ymERIJpV02OUGdVmNwl2BpqjSkVF6UJYgvPkQhJk4acA5H+k
 ZxqzI5As0QmAufG9Xeq1eeEgxxWqrEc4h27KO6YTMbsuToh/3vWReh8gb59nfYT2
 Bgn9sbis0yBemlpYG4bmKYmx7Bdjx+UbOMx2o56v+E9NFxHzKlaXE7J7uoFC5osi
 5IX/rOSdrJtBeqZUMCpbM99JigMC52GjSvxJTk6ZaFR7tGLnzx1bXE98ZDyKY5te
 2s1gfoT0EM0BU7sABGo4HbFhiEnUaVX08JOo6b8ugWYLkbgoKxC0TsgEu7RKNlPD
 UEC6sqFBB6POinY0OhY=
 =chEP
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN97EkACgkQmmx57+YA
 GNm/GBAAg6fH7cAYkInk0gJhZIRmJFJoedLjOr5PW+UIG2FziRnYbgg8FKWVBJOn
 g/bjDR9egDpJzOeXyVmoKpvOMAFa0/CiGyVlEymzd8AAAFWUynJ07uZ+p/B8Ljh+
 54HK0pJ1wwil1Xi0DKUSwIwtFynuCZs1rARxYaxcMy8urlMAyaty7asT7hqb/0Yj
 gsZr1qwL5/sItFFhXUe5JTkf+9ncCn3wafmV24dRE3PB5PKGZcbsfz93XmOxevNJ
 fx6YRKKvPmEiF16bpPEUZ2Nnxg4oRA0YEIpYniQj+fdmk/oJ+f0Pc2pYPsO3EEpI
 m2ggWGAzldIr6wcSKC/lFzuJUlRA9JK8tcYDk+j7uBbTNeZc7ShoR81JmhUJYVP5
 dGEUF/M20mAFSn+dr/Jd50ZOD0hr0jGYeqiYht8Y4VWvITKMk++lnuHnm1HvihHG
 kcgCCtyBnc8Di6t4Q/hMiXJmy1fDHoviUlWgt4E7n5yGejT7mNJi296QCGGySyJh
 Hmtuu3cLJRMr2WAxI3V5ywq8jPuHDWjLUVfCYWqwDRycg2XrWlCjmp33zPCLlYCR
 xEscn2dYHizQv3iHTTNf87ouzxKNR2+rM6suvcoTLH2Fy2yqA4+on6oarQFVIrgO
 a99m+NgKagkYVeFjCA4rA3KVsjjR737QJbng0Egmz9wPEChDusw=
 =fiku
 -----END PGP SIGNATURE-----

Merge tag 'v6.1-next-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/defconfig

- enable missing drivers for to boot from MT8183 based chromebooks

* tag 'v6.1-next-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  arm64: defconfig: Enable missing configs for mt8183-jacuzzi-juniper

Link: https://lore.kernel.org/r/610edfca-0a3a-fd41-5208-71978866be4f@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-23 10:47:53 +01:00
Pierre Gondois
848343c0b4 arm64: dts: rockchip: update cache properties for rk3308 and rk3328
The DeviceTree Specification v0.3 specifies that the cache node
'compatible' and 'cache-level' properties are 'required'. Cf.
s3.8 Multi-level and Shared Cache Nodes
The 'cache-unified' property should be present if one of the
properties for unified cache is present ('cache-size', ...).

Update the Device Trees accordingly.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Link: https://lore.kernel.org/r/20221107155825.1644604-20-pierre.gondois@arm.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:28:44 +01:00
Andrew Powers-Holmes
afbaed737f arm64: dts: rockchip: Add SOQuartz Model A baseboard
This patch adds the device tree for the "Model A" baseboard for
the SOQuartz CM4 SoM, which is not to be confused with the
Quartz64 Model A, which is the same form factor and SoC, but is
not a CM4 carrier board.

The board features a PCIe 2 x1 slot, USB 2 host ports, CSI/DSI
connectors, an eDP FFC connector, gigabit ethernet, HDMI, and a
12V DC barrel jack. Also present is a microSD card slot, 40-pin
GPIO, and a power and reset button.

Signed-off-by: Andrew Powers-Holmes <aholmes@omnom.net>
[rebase, misc fixes, reword]
Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
Link: https://lore.kernel.org/r/20221116115337.541601-5-frattaroli.nicolas@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:22:49 +01:00
Andrew Powers-Holmes
a5c826ecde arm64: dts: rockchip: Add SOQuartz blade board
This adds a device tree for the PINE64 SOQuartz blade baseboard,
a 1U rack mountable baseboard for the CM4 form factor with PoE
support designed for the SOQuartz CM4 System-on-Module.

The board takes power from either PoE or a 5V DC input, and allows
for mounting an M.2 SSD.

The board also features one USB 2.0 host port, one HDMI output,
a 3.5mm jack for UART, and the aforementioned gigabit networking
port.

Signed-off-by: Andrew Powers-Holmes <aholmes@omnom.net>
[rebase, squash, reword, misc fixes]
Signed-off-by: Nicolas Frattaroli <frattaroli.nicolas@gmail.com>
Link: https://lore.kernel.org/r/20221116115337.541601-3-frattaroli.nicolas@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:22:40 +01:00
Maya Matuszczyk
4e2347dbd6 arm64: dts: rockchip: Add Anbernic RG351M
This device is a clone of Odroid Go Advance, with added PWM motor, internal
gamepad connected on USB instead of just having it be on GPIO + ADC, and
missing battery shunt resistor.
Due to missing shunt resistor and lack of a workaround in rk817_charger
driver rk817_charger is not enabled in dts.

There's also an LED on GPIO 77(I *guess* PB5 on &gpio2),
that is controlled in a weird way:

- It is set to red by setting output value to 1
- Set to green by setting output value to 0
- Set to yellow by setting gpio direction to input

I have no idea how to describe that in DTS, without adding a custom
driver, for now it's just left out.

Signed-off-by: Maya Matuszczyk <maccraft123mc@gmail.com>
Link: https://lore.kernel.org/r/20221117215954.4114202-6-maccraft123mc@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:20:06 +01:00
Maya Matuszczyk
2f217d71aa arm64: dts: rockchip: Add Odroid Go Super
This device is another revision of Odroid Go Advance, with added two
volume buttons, a second analog stick and a bigger screen that isn't yet
supported in the mainline kernel.

Signed-off-by: Maya Matuszczyk <maccraft123mc@gmail.com>
Link: https://lore.kernel.org/r/20221117215954.4114202-5-maccraft123mc@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:20:05 +01:00
Maya Matuszczyk
abba44b3e7 arm64: dts: rockchip: Add Odroid Go Advance Black Edition
This device is a minor revision of the origin Odroid Go Advance, with
added two more buttons and a WiFi card

Signed-off-by: Maya Matuszczyk <maccraft123mc@gmail.com>
Link: https://lore.kernel.org/r/20221117215954.4114202-4-maccraft123mc@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:20:05 +01:00
Maya Matuszczyk
04ea3e3038 arm64: dts: rockchip: Move most of Odroid Go Advance DTS into a DTSI
To support more devices that are clones of this device or minor
revisions without duplication move most of go2's dts into a dtsi file.

Signed-off-by: Maya Matuszczyk <maccraft123mc@gmail.com>
Link: https://lore.kernel.org/r/20221117215954.4114202-2-maccraft123mc@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:20:05 +01:00
Arnd Bergmann
8ccf49d7fb Fix check warnings all over the place.
mt7986:
 - Add crypto, I2C and SPI nodes
 
 mt6795:
 - Add clock nodes
 - Add DMA support for UARTs
 - Add MMC nodes
 - Add basic support for Sonyx Xperia M5
 
 mt8195:
 - Add video enconder node
 - Add PCIe support
 - Fine tune capacity-dmips-mhz
 - Add support for internal and external display port
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEUdvKHhzqrUYPB/u8L21+TfbCqH4FAmN7we4XHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQL21+TfbCqH6kZhAAp2Jq3a/YWgUKSLIEVHLTXdQ7
 BlG43pxPhL45+HF7upwzCQmMcURltnLFcfwX/8Wwa54l3cwO/nnRkIZunZ1+IMJt
 cyxz9drDWI7jWFRSV/jSWdkUh4jllrWLJtfSXQng1by0ojht5d+PMnmWJbRbMUnc
 9fAwF8hOeTqAY6/Wfem/Zpbtzd0riBgV2bPLPSbDR2Lan9pm8uvvZ5ajFHTXiI+W
 WWzdglNKG69P1TSv2vSeUBRocaNMAQZrBnVJ0y7paKjR1FvDWDFeG4oVETn/nLmJ
 ELfWuWZckdx07vF7cJ3y55DtDJ67KXqCtrjiuy5iHHElOnzf1pKCPRKEEWw1Kzu2
 yobRIQh4zCHm+NtzbKuP3TdPU+WMJrecwmWNEL1KJRsVDqNjPSslWwjzttA6+OBZ
 rG+A/BOM579c7571RyuRqzgXgTiOcySera+n5dwyTSSmfgzYfhgmwicXNoU47luK
 8PVkxSHH3VAN/zzQKX4R8yWsV6zpPRvntEwuMnnilLzPZ26bOXpm+PoTAqvmU5fC
 1ycYfeQ8L0Md80TGbEDPrpLKV163oUTu3lOBcmYa28GOl+UQmUN9PCZxhJ+piy8H
 k2Z4YYugYiBRmDb50DTJfb3s/2RUptNL6qp2GiAfVxgR0HJmRv9BWB+03Sj6w9/F
 dkLhHZTmKlSigWMEJyM=
 =pZ8i
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN9SM4ACgkQmmx57+YA
 GNmJzg//WybRSpRys9eLXUpu+iN0w5b1JyxYa8eoidMLWf6tmhr+POifRG/P4rbB
 3WyRIdlOr8PZx5CUJNqlTLGqDAt/Y6KhhkzuSAUh9GRnvYhBVGrGMhkshf1+nn1S
 cfukJVbErDwWLey2xcVTmGzbuSNDrLRRSsnwrNqfy7ZXoiBrPPYV6OnOsPlTcScQ
 wwziUNw5ets5Mew+uWuX+WsGHLhb0U2UdY4bxfEOm1fI5L+1KK8gvIVVI73adoR2
 qZnuPCGkB2clFLzhoYi7YZ7GYWkm+R+74hpEOIkKb7+El+3wldNk3Vxj3tArW650
 NK0MzgdXU5f61fw/kdTsEK+AuTr/owkLoBN2wzpAaBh5O6Gp/RcBUhkDEIsPWGRg
 WHR0BIrHAY6g6lu+ikrrQc7eQ4TO3hMSXrXaZcc97YV8ukjDq624KlKUzJueIrrM
 4Dp2YRuXkOOEe4AGnuPVgwyIy4RhNyDNqnJBhbSOvJZfVMGpyzWqF+iwyyqHnKbY
 N2quio/AejQyyxT2qMwKXd81cSphx5QagN+KqDFf6HsI8l8VSf35iwXhcKdJEQfN
 u4Db6ZByr/BNVSxrib8eMTay1MaxuDhau1QcFdi1/JXGc5vtLQTIgpto8dxurgMj
 CrXrZlUu4yZ2MGJK0+5yAV4qzHMourZ7nOPmUZnXoJB2d6SnhQ8=
 =sw9W
 -----END PGP SIGNATURE-----

Merge tag 'v6.1-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into soc/dt

Fix check warnings all over the place.

mt7986:
- Add crypto, I2C and SPI nodes

mt6795:
- Add clock nodes
- Add DMA support for UARTs
- Add MMC nodes
- Add basic support for Sonyx Xperia M5

mt8195:
- Add video enconder node
- Add PCIe support
- Fine tune capacity-dmips-mhz
- Add support for internal and external display port

* tag 'v6.1-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: (35 commits)
  arm64: dts: mt7986: add spi related device nodes
  arm64: dts: mt7986: move wed_pcie node
  arm64: dts: mediatek: Add support for MT6795 Sony Xperia M5 smartphone
  dt-bindings: arm: mediatek: Add compatible for MT6795 Sony Xperia M5
  arm64: dts: mediatek: mt6795: Add support for eMMC/SD/SDIO controllers
  arm64: dts: mediatek: mt6795: Add support for APDMA and wire up UART DMAs
  arm64: dts: mediatek: mt6795: Replace UART dummy clocks with pericfg
  arm64: dts: mediatek: mt6795: Add topckgen, infra, peri clocks/resets
  arm64: dts: mediatek: cherry: Add edptx and dptx support
  arm64: dts: mediatek: cherry: Add dp-intf ports
  arm64: dts: mt8195: Add edptx and dptx nodes
  arm64: dts: mt8195: Add dp-intf nodes
  arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name
  arm64: dts: mediatek: pumpkin-common: Fix devicetree warnings
  arm64: dts: mt2712-evb: Fix usb vbus regulators unit names
  arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names
  arm64: dts: mt2712e: Fix unit address for pinctrl node
  arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators
  arm64: dts: mt6779: Fix devicetree build warnings
  arm64: dts: mt7896a: Fix unit_address_vs_reg warning for oscillator
  ...

Link: https://lore.kernel.org/r/8933d687-71f0-e9ad-a7c6-2e5a8993463d@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-22 23:10:22 +01:00
Anand Moon
79aa02ddc6 arm64: dts: rockchip: Add support of regulator for ethernet node on Rock 3A SBC
Add regulator support for ethernet node

Fix following warning.
[    7.365199] rk_gmac-dwmac fe010000.ethernet: no regulator found

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Acked-by: Michael Riesch <michael.riesch@wolfvision.net>
Tested-by: Michael Riesch <michael.riesch@wolfvision.net>
Link: https://lore.kernel.org/r/20221116200150.4657-4-linux.amoon@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:09:25 +01:00
Anand Moon
ef9f4b4a50 arm64: dts: rockchip: Add support of external clock to ethernet node on Rock 3A SBC
Add support of external clock gmac1_clkin which is used as input clock
to ethernet node.

Signed-off-by: Anand Moon <linux.amoon@gmail.com>
Reviewed-by: Michael Riesch <michael.riesch@wolfvision.net>
Tested-by: Michael Riesch <michael.riesch@wolfvision.net>
Link: https://lore.kernel.org/r/20221116200150.4657-3-linux.amoon@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2022-11-22 23:09:25 +01:00
Arnd Bergmann
0294678861 arm64: tegra: Device tree changes for v6.2-rc1
This contains many new additions, primarily for Tegra234, as well as a
 slew of cleanups for issues flagged by the DT validation tools.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmN7rpkTHHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoTT4EACggtfdoSghLUBBVuu6iFdiRuDEmEV/
 BLGy80NXes+PTH4UHOopFF3vawtyiaUsN584SkkhQfjvrETLvGSFQHEyXIV+zf/h
 GUiRKwli615kVZdTzNjY0Dc7tb3whOdSzb3fXlLstOR7UGhlx0qOy2E9mChtT/+n
 Fr57ioUO6cVy241mN1mtf1E0he6ndpMRKW5vHKn4TqjcksRMr8KFncEjHcnHLds1
 0i9pQhHqHLg3P1m7gVK/IZd5F8O5zE6PfIhzJi/8PirxHcp/SuAojAPSZWUN+SaG
 wgT5V5tN63PKvNVf5cm39KaXWKHTiPhbxMySC084a3s+ISPuOMXhgsjKBdRzGqok
 BwFTnMO7q8JcLq3uGA20RqhBHJDAlBLDllDeuz2BMhdqINVS70A3BtgkgUxNyxal
 E2eacQ/NRjf/d9awFnyLZ+OR9kYjtKiSpc3ojVbxcUEJhs1LFZ0wyL+Pl3hZ/9uy
 wDxQQMug5hBs7aXV7L9WD/9NmuS9EEd549r3JDRmpdpFA57fDvquh7jiERzuF+O8
 Ft6ivK9BhiHbxkPUbbHb+nyiQSG4V837z5mHExka1IBHruA5l7RCe4njLLIMuCBl
 amI8uOvFoVLz8/MmxKXUIwUuw5sAYmbLMPLqu6DL3vpw7G+3oh9NYFgVax/JMTCL
 7jrLlSxiUDgIaw==
 =O3Ij
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN9RvMACgkQmmx57+YA
 GNkv6g/+IiRZTFZ+GPs0vRHISTlcHFJxUOoOGbimABmAEdW/ohQFyRQnY9eeytEi
 1bmKxzY9z0EwMrs4I8BTDSLI+Pm8ru1up0xUP6/FjU2PXBJa7Wh2jPL20sLnCVut
 gWFs9AOoYpDK0wKv+Dvdjb4llIStp88ZL872a8XbI5zKXVV1qT7ZrZWSyyg4OAE+
 Nm56SK/mTyCLkQh0cbENvDUfXd5/06JJRifyCcz6bVqp3IDN3r4ICaSwc26D3fqZ
 EuCKkc81KxBeN+ey3abq1BZ0jYB0cOAZfV5oLQ2eRIQuYxKt81+TpliS3n8oGgHN
 gI8HL/f9nkNEoVK12v3WgtQNd8oB43QsTCTto+F3atUV4yT0wtX+HgRPbiKJAmyI
 I8YeuMkr5cA1npFWNDVQlSXLsh6MRguAFZdlPcMA8Jq1/1MRg8sDgOiD3xjhStrx
 MwUiw4/++pOWj6wJlogsrjvNv3eJoKFW2hP6hN45ZBiOkHnvSXsud5yvuj6meHmq
 8HjGbHQ91Nmeu91gugMd5tdJcpvgkAGQBJqWycwWO90fQ1mUiNPtW8HxeyAsDYyI
 az439eDZf+Wn5GEIq4ZAR9b5LmL/LBceOawtNYuW9/+GA55C5ms+K/DkTmO4RfxE
 ySQi6e0TtWad3h/b4hSKwg0UhrwXvY4hr9FNzNhOi9qLLUe/KwU=
 =Ptk7
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.2-arm64-dt-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

arm64: tegra: Device tree changes for v6.2-rc1

This contains many new additions, primarily for Tegra234, as well as a
slew of cleanups for issues flagged by the DT validation tools.

* tag 'tegra-for-6.2-arm64-dt-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: (30 commits)
  arm64: tegra: Remove unneeded clock-names for Tegra132 PWM
  arm64: tegra: Fix up compatible string for SDMMC1 on Tegra234
  arm64: tegra: Remove unused reset-names for QSPI
  arm64: tegra: Fixup pinmux node names
  arm64: tegra: Remove reset-names for QSPI
  arm64: tegra: Use correct compatible string for Tegra234 HDA
  arm64: tegra: Use correct compatible string for Tegra194 HDA
  arm64: tegra: Use vbus-gpios property
  arm64: tegra: Restructure Tegra210 PMC pinmux nodes
  arm64: tegra: Update cache properties
  arm64: tegra: Remove 'enable-active-low'
  arm64: tegra: Add dma-channel-mask in GPCDMA node
  arm64: tegra: Fix non-prefetchable aperture of PCIe C3 controller
  arm64: tegra: Add missing compatible string to Ethernet USB device
  arm64: tegra: Separate AON pinmux from main pinmux on Tegra194
  arm64: tegra: Add ECAM aperture info for all the PCIe controllers
  arm64: tegra: Remove clock-names from PWM nodes
  arm64: tegra: Enable GTE nodes
  arm64: tegra: Update console for Jetson Xavier and Orin
  arm64: tegra: Enable PWM users on Jetson AGX Orin
  ...

Link: https://lore.kernel.org/r/20221121171239.2041835-7-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-22 23:02:27 +01:00
Arnd Bergmann
867531d95c SoCFPGA dts updates for v6.2
- Use the "clk-phase-sd-hs" property for SDMMC
 - Remove the "clk-phase" fom the sdmmc_clk that is no longer used
 - Clean dtschema for mmc node
 - Increase NAND partition for Arria10
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmN7o1wACgkQGZQEC4Gj
 KPQCIQ//QIHQ7/6HFv9IgMvQ8lspR98S39QzbRjauIeDFmkEhLeguSktxYmW13LK
 YIQOauVeXB9lxffKsOYV4jswFihJgjMjnfRYfsMsw57/ymUp+Gh+alO9ZI0FOTYm
 rnqVl1PVJoAKe7Zq/wEqjKE8sdUomoumAUEC5iEl3DJF77fhHF98yMPhgFkj4THh
 7iUnmLL6anziI87PhaSR5UJM2L4e3mS17bZvYN5oOcRGhIsY0LKDRMioDttgXEge
 92TIzk8niMqcpwO1ueMCy/gUwNeWTCcWNuKswUH3B+N2ll5dwqNTISX5+pEKnCix
 dmelj6g0Oy/kIMzv8HawT2ce8Zqg4CH9aJTK8Z9xhm+FFxhO/G5SFR7lzk46F1T+
 Vp9vu9hsXT+B90vsE/Zl8tKhYbCmx+RjcXce44yEN+BZvjZT1JHqmfkCtGmIBL5W
 vgWqCPP3DZr1/TivKzzUQoFXlMqMoLIdyGFE/uVJdszHcb/ZOVfCeFxRekTe0Dpm
 NgLSlNvpGaJlmzAZj511d/BlC/btHt3v5PqqIbBScgPOIPiMBNvix8AqBHT0vKKo
 BS9PhiOIDPn946UZ09MNj0cyRXPCcBum3jnxohSQnouPILK3M3lCCMstSpVtLOF3
 pFSv2LwL8gvJTL8AgYoZ/E2SujYb2CEyeUiD7YVuk+/QjyMNo/U=
 =PU2+
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN9RmYACgkQmmx57+YA
 GNkVYxAAuGxMNJnRj1797W13XGInnFxyfH5ZdQXY39gMhCmIi2C3kzgstqoDfwZ/
 nNpFYFYCqUEl3LnKfj7kRqHoJ66DMHIZVCXBjnDu1LgD7vLbP+mWD2IVBWPPphER
 NwDhADKmxgMp0oJGPYkC4LOP2eQzBI2jkuT8apPNHLIefHY+uGLL3QXHzccvIYI9
 R9sBUErZ75pNkALQg6hhMEwgP848+fZOhnWFob4X06dcEMuDu2UB7t4rCJc7XrGE
 kNrSGj4r15R/F/MnBmy2iEtqh19jadla8i74yiHECfVKpcGipzxxlNKnz57v8fyV
 P+SfP2riTUoiWe/Ebu1eGF4TF9IhnPse9ZhrozWLGma2pNI6FNGuuw34BL3ztuAE
 9oTKL4Jjsi9yLR79NgLv9Rjlu9OYYCWPZlBHZgY7xSA6Ahl+ZADjT3VUhK5r0zMJ
 Y4V/3n69/cbCyXYZYvTHWyC5m7LbbTYbFP3fPhTrGilwhU67TkA5ppnS0TQosr7B
 9Ty5ejH0iRYZBXvhuK7M6YypdKshV+sYtUWCZk7WghMHDD9haXGRyzRF4+sriXOS
 vqhQiOH3l8erHzQEu/S74CxUaauIrfVlG0cnfoySQ0h5l9GZrGmgbvDRuNj6UF9M
 vrddcNs5LL1+cuHkkByFCyJ0Uu0nKQW7itu1aNpOk0/FR8oeZMg=
 =h/fj
 -----END PGP SIGNATURE-----

Merge tag 'socfpga_dts_updates_for_v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into soc/dt

SoCFPGA dts updates for v6.2
- Use the "clk-phase-sd-hs" property for SDMMC
- Remove the "clk-phase" fom the sdmmc_clk that is no longer used
- Clean dtschema for mmc node
- Increase NAND partition for Arria10

* tag 'socfpga_dts_updates_for_v6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  arm64: dts: socfpga: Add clk-phase-sd-hs property to the sdmmc node
  arm: dts: socfpga: Add clk-phase-sd-hs property to the sdmmc node
  arm: dts: socfpga: remove "clk-phase" in sdmmc_clk
  arm: dts: socfpga: align mmc node names with dtschema
  ARM: dts: socfpga: arria10: Increase NAND boot partition size

Link: https://lore.kernel.org/r/20221121163259.341974-1-dinguyen@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-22 23:00:06 +01:00
Oliver Upton
5e806c5812 KVM: arm64: Reject shared table walks in the hyp code
Exclusive table walks are the only supported table walk in the hyp, as
there is no construct like RCU available in the hypervisor code. Reject
any attempt to do a shared table walk by returning an error and allowing
the caller to clean up the mess.

Suggested-by: Will Deacon <will@kernel.org>
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221118182222.3932898-4-oliver.upton@linux.dev
2022-11-22 13:05:53 +00:00
Oliver Upton
b7833bf202 KVM: arm64: Don't acquire RCU read lock for exclusive table walks
Marek reported a BUG resulting from the recent parallel faults changes,
as the hyp stage-1 map walker attempted to allocate table memory while
holding the RCU read lock:

  BUG: sleeping function called from invalid context at
  include/linux/sched/mm.h:274
  in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 1, name: swapper/0
  preempt_count: 0, expected: 0
  RCU nest depth: 1, expected: 0
  2 locks held by swapper/0/1:
    #0: ffff80000a8a44d0 (kvm_hyp_pgd_mutex){+.+.}-{3:3}, at:
  __create_hyp_mappings+0x80/0xc4
    #1: ffff80000a927720 (rcu_read_lock){....}-{1:2}, at:
  kvm_pgtable_walk+0x0/0x1f4
  CPU: 2 PID: 1 Comm: swapper/0 Not tainted 6.1.0-rc3+ #5918
  Hardware name: Raspberry Pi 3 Model B (DT)
  Call trace:
    dump_backtrace.part.0+0xe4/0xf0
    show_stack+0x18/0x40
    dump_stack_lvl+0x8c/0xb8
    dump_stack+0x18/0x34
    __might_resched+0x178/0x220
    __might_sleep+0x48/0xa0
    prepare_alloc_pages+0x178/0x1a0
    __alloc_pages+0x9c/0x109c
    alloc_page_interleave+0x1c/0xc4
    alloc_pages+0xec/0x160
    get_zeroed_page+0x1c/0x44
    kvm_hyp_zalloc_page+0x14/0x20
    hyp_map_walker+0xd4/0x134
    kvm_pgtable_visitor_cb.isra.0+0x38/0x5c
    __kvm_pgtable_walk+0x1a4/0x220
    kvm_pgtable_walk+0x104/0x1f4
    kvm_pgtable_hyp_map+0x80/0xc4
    __create_hyp_mappings+0x9c/0xc4
    kvm_mmu_init+0x144/0x1cc
    kvm_arch_init+0xe4/0xef4
    kvm_init+0x3c/0x3d0
    arm_init+0x20/0x30
    do_one_initcall+0x74/0x400
    kernel_init_freeable+0x2e0/0x350
    kernel_init+0x24/0x130
    ret_from_fork+0x10/0x20

Since the hyp stage-1 table walkers are serialized by kvm_hyp_pgd_mutex,
RCU protection really doesn't add anything. Don't acquire the RCU read
lock for an exclusive walk.

Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221118182222.3932898-3-oliver.upton@linux.dev
2022-11-22 13:05:53 +00:00
Oliver Upton
3a5154c723 KVM: arm64: Take a pointer to walker data in kvm_dereference_pteref()
Rather than passing through the state of the KVM_PGTABLE_WALK_SHARED
flag, just take a pointer to the whole walker structure instead. Move
around struct kvm_pgtable and the RCU indirection such that the
associated ifdeffery remains in one place while ensuring the walker +
flags definitions precede their use.

No functional change intended.

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Acked-by: Will Deacon <will@kernel.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221118182222.3932898-2-oliver.upton@linux.dev
2022-11-22 13:05:53 +00:00
Robert Nelson
fae14a1cb8 arm64: dts: ti: Add k3-j721e-beagleboneai64
BeagleBoard.org BeagleBone AI-64 is an open source hardware single
board computer based on the Texas Instruments TDA4VM SoC featuring
dual-core 2.0GHz Arm Cortex-A72 processor, C7x+MMA and 2 C66x
floating-point VLIW DSPs, 3x dual Arm Cortex-R5 co-processors,
2x 6-core Programmable Real-Time Unit and Industrial Communication
SubSystem, PowerVR Rogue 8XE GE8430 3D GPU. The board features 4GB
DDR4, USB3.0 Type-C, 2x USB SS Type-A, miniDisplayPort, 2x 4-lane
CSI, DSI, 16GB eMMC flash, 1G Ethernet, M.2 E-key for WiFi/BT, and
BeagleBone expansion headers.

This board family can be indentified by the BBONEAI-64-B0 in the
at24 eeprom:

[aa 55 33 ee 01 37 00 10  2e 00 42 42 4f 4e 45 41 |.U3..7....BBONEA|]
[49 2d 36 34 2d 42 30 2d  00 00 42 30 30 30 37 38 |I-64-B0-..B00078|]

https://beagleboard.org/ai-64
https://git.beagleboard.org/beagleboard/beaglebone-ai-64

Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
Reviewed-by: Andrew Davis <afd@ti.com>
CC: Nishanth Menon <nm@ti.com>
CC: Vignesh Raghavendra <vigneshr@ti.com>
CC: Tero Kristo <kristo@kernel.org>
CC: Jason Kridner <jkridner@beagleboard.org>
CC: Drew Fustini <drew@beagleboard.org>
Signed-off-by: Nishanth Menon <nm@ti.com>
Link: https://lore.kernel.org/r/20221118163139.3592054-2-robertcnelson@gmail.com
2022-11-21 15:49:45 -06:00
Sam Shih
885e153ed7 arm64: dts: mt7986: add spi related device nodes
This patch adds spi support for MT7986.

Signed-off-by: Sam Shih <sam.shih@mediatek.com>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221118190126.100895-7-linux@fw-web.de
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 18:17:35 +01:00
Frank Wunderlich
99cce13b82 arm64: dts: mt7986: move wed_pcie node
Move the wed_pcie node to have node aligned by address.

Fixes: 00b9903996 ("arm64: dts: mediatek: mt7986: add support for Wireless Ethernet Dispatch")
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221118190126.100895-2-linux@fw-web.de
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 18:03:22 +01:00
Arnd Bergmann
1e9629820a
Merge tag 'renesas-arm-dt-for-v6.2-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt
Renesas ARM DT updates for v6.2 (take two)

  - Timer (TMU and CMT) and quad Cortex-A76 CPU topology support for
    the R-Car V4H SoC,
  - Watchdog, L2 cache, and system controller support for the RZ/V2M
    SoC on the RZ/V2M Evaluation Kit 2.0,
  - Ethernet Switch and SERDES supports for the R-Car S4-8 SoC and the
    Spider development board,
  - Miscellaneous fixes and improvements.

* tag 'renesas-arm-dt-for-v6.2-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (21 commits)
  arm64: dts: renesas: spider-ethernet: Enable Ethernet Switch and SERDES
  arm64: dts: renesas: r8a779f0: Add Ethernet Switch and SERDES nodes
  arm64: dts: renesas: r9a09g011: Add system controller node
  arm64: dts: renesas: r8a779g0: Add CA76 operating points
  arm64: dts: renesas: r8a779g0: Add CPU core clocks
  arm64: dts: renesas: r8a779g0: Add CPUIdle support
  arm64: dts: renesas: r8a779g0: Add secondary CA76 CPU cores
  arm64: dts: renesas: r8a779g0: Add L3 cache controller
  arm64: dts: renesas: r9a09g011: Add L2 Cache node
  arm64: dts: renesas: rzv2mevk2: Enable watchdog
  arm64: dts: renesas: r9a09g011: Add watchdog node
  arm64: dts: renesas: spider-cpu: Switch from SCIF3 to HSCIF0
  arm64: dts: renesas: rzg2l: Drop #address-cells from pinctrl nodes
  arm64: dts: renesas: r9a09g011: Fix I2C SoC specific strings
  arm64: dts: renesas: rzg2l: Add missing cache-level properties
  arm64: dts: renesas: r8a779g0: Add CMT node
  arm64: dts: renesas: r9a09g011: Fix unit address format error
  arm64: dts: renesas: white-hawk-cpu: Sort RWDT entry correctly
  arm64: dts: renesas: r8a779g0: Add TMU nodes
  arm64: dts: renesas: r8a779f0: Fix SCIF "brg_int" clock
  ...

Link: https://lore.kernel.org/r/cover.1668788921.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 15:03:53 +01:00
Arnd Bergmann
4614161b06
Merge tag 'hisi-arm64-dt-for-6.2' of https://github.com/hisilicon/linux-hisi into soc/dt
ARM64: DT: HiSilicon ARM64 DT updates for 6.2

- Add missing cache-level properties

* tag 'hisi-arm64-dt-for-6.2' of https://github.com/hisilicon/linux-hisi:
  arm64: dts: Update cache properties for hisilicon

Link: https://lore.kernel.org/r/63744D38.9010700@hisilicon.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 15:02:17 +01:00
Arnd Bergmann
efa0b8251f
Merge tag 'imx-dt64-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into soc/dt
i.MX arm64 device tree update for 6.2:

- New device trees for i.MX8MM based Cloos PHG and WB15 SoM/EVK.
- A set of tqma8mpql/mba8mpxl changes, adding USB Host, PCIe, PWM fan
  support.
- Rename DTB overlay source files from .dts to .dtso.
- A series from Frank Li to add USB, ADC, FlexSPI, LPSPI support for
  i.MX8DXL.
- A couple of librem5-devkit changes, switching LED to use PWM and using
  function and color properties for LED.
- Enable wakeup-source for USB PHY for i.MX8MM/N EVK.
- A set of random changes from Marcel Ziswiler to improve i.MX8M based
  Verdin device trees.
- A series from Marek Vasut to update Data Modul i.MX8M Mini eDM SBC and
  DH electronics i.MX8M Plus DHCOM, modeling PMIC to SNVS RTC clock
  path, dropping QCA clk_out setup, adding bluetooth UART, etc.
- A bunch of changes from Peng Fan to add LPSPI, TPM etc for i.MX93,
  update i.MX8MP/N EVK with UART, I2C addition.
- Update cache properties per DeviceTree Specification v0.3.
- Add gpio-ranges property for i.MX8DXL and i.MX8Q LSIO Subsystem.
- Misc small and random changes.

* tag 'imx-dt64-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (60 commits)
  arm64: dts: freescale: Rename DTB overlay source files from .dts to .dtso
  arm64: dts: imx8mm-evk: add vcc supply for pca6416
  arm64: dts: imx8m[m,q]-evk: change to use off-on-delay-us in regulator
  arm64: dts: imx8mn-evk: enable uart1
  arm64: dts: imx8mn-evk: add i2c gpio recovery settings
  arm64: dts: imx8mn-evk: set off-on-delay-us in regulator
  arm64: dts: imx8mn-evk: update vdd_soc dvs voltage
  arm64: dts: imx8mp-evk: enable I2C2 node
  arm64: dts: imx8mp-evk: enable fspi nor on imx8mp evk
  arm64: dts: imx8mp-evk: enable uart1/3 ports
  ARM64: dts: imx8mp-evk: add pwm support
  arm64: dts: imx8mp: add mlmix power domain
  arm64: dts: imx8mq: fix dtschema warning for imx7-csi
  arm64: dts: Update cache properties for freescale
  arm64: dts: imx8mm-phg: Add initial board support
  arm64: dts: imx8qxp-ss-lsio: add gpio-ranges property
  arm64: dts: imx8qm-ss-lsio: add gpio-ranges property
  arm64: dts: imx8dxl-ss-lsio: add gpio-ranges property
  arm64: dts: imx8dxl_evk: add lpspi0 support
  arm64: dts: imx8dxl: add lpspi support
  ...

Link: https://lore.kernel.org/r/20221119125733.32719-5-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 15:01:51 +01:00
Will Deacon
32d495b0c3 Revert "arm64/mm: Drop redundant BUG_ON(!pgtable_alloc)"
This reverts commit 9ed2b4616d.

Nathan reports early boot failures bisected to this change which look
related to the kPTI nG repainting. In any case, consolidating the
BUG_ON()s to a single location needs more thought, so revert the change
until this is figured out properly.

Link: https://lore.kernel.org/r/Y3pS5fdZ3MdLZ00t@dev-arch.thelio-3990X
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Will Deacon <will@kernel.org>
2022-11-21 12:52:07 +00:00
Thierry Reding
1002a36112 arm64: tegra: Remove unneeded clock-names for Tegra132 PWM
There's only a single clock for this IP block, so it doesn't need a
clock-names property.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:16 +01:00
Thierry Reding
132b552cba arm64: tegra: Fix up compatible string for SDMMC1 on Tegra234
The compatible string list for SDHCI on Tegra234 should be
"nvidia,tegra234-sdhci", followed by the "nvidia,tegra186-sdhci"
fallback. Use that consistently for all SDHCI controllers.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:15 +01:00
Thierry Reding
d8e194786a arm64: tegra: Remove unused reset-names for QSPI
The Tegra QSPI controller uses a single reset line, so there's no need
for a reset-names property. Remove such properties.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:15 +01:00
Thierry Reding
efe499d885 arm64: tegra: Fixup pinmux node names
Pinmux node names should have a pinmux- prefix and not use underscores.
Fix up some cases that didn't follow those rules.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:15 +01:00
Thierry Reding
e9ddebc3a2 arm64: tegra: Remove reset-names for QSPI
The Tegra QSPI controllers use a single reset control, so reset-names is
not necessary and therefore not specified in the DT bindings. Drop the
property from device tree files to avoid validation warnings.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:15 +01:00
Thierry Reding
b2fbcbe1ae arm64: tegra: Use correct compatible string for Tegra234 HDA
The Tegra234 HDA controller is not backwards-compatible with Tegra30, so
drop the corresponding compatible string from the list.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:15 +01:00
Thierry Reding
7f0ea5acfc arm64: tegra: Use correct compatible string for Tegra194 HDA
The Tegra194 HDA controller is not backwards-compatible with Tegra30, so
drop the corresponding compatible string from the list.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:14 +01:00
Thierry Reding
3d5d63e96a arm64: tegra: Use vbus-gpios property
Instead of using the deprecated vbus-gpio property, switch to using the
more standard vbus-gpios property.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:14 +01:00
Thierry Reding
85ab13c184 arm64: tegra: Restructure Tegra210 PMC pinmux nodes
The PMC pinmux configuration nodes need to be part of a top-level pinmux
node. Add that new "pinmux" node and move the configuration nodes into
it.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:14 +01:00
Pierre Gondois
27f1568b1d arm64: tegra: Update cache properties
The DeviceTree Specification v0.3 specifies that the cache node
'compatible' and 'cache-level' properties are 'required'. Cf.
s3.8 Multi-level and Shared Cache Nodes
The 'cache-unified' property should be present if one of the
properties for unified cache is present ('cache-size', ...).

Update the Device Trees accordingly.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:14 +01:00
Fabio Estevam
14910d6871 arm64: tegra: Remove 'enable-active-low'
The 'enable-active-low' property is not a valid one.

Only 'enable-active-high' is valid, and when this property is absent
the gpio regulator will act as active low by default.

Remove the invalid 'enable-active-low' property.

Signed-off-by: Fabio Estevam <festevam@denx.de>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:14 +01:00
Akhil R
dd0be8278a arm64: tegra: Add dma-channel-mask in GPCDMA node
Add dma-channel-mask property in Tegra GPCDMA device tree node.

The property would help to specify the channels to be used in
kernel and reserve few for the firmware. This was previously
achieved by limiting the channel number to 31 in the driver.
This is wrong and does not align with the hardware. Correct this
and update the interrupts property to list all 32 interrupts.

Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:13 +01:00
Vidya Sagar
47a2f35d9e arm64: tegra: Fix non-prefetchable aperture of PCIe C3 controller
Fix the starting address of the non-prefetchable aperture of PCIe C3
controller.

Fixes: ec142c44b0 ("arm64: tegra: Add P2U and PCIe controller nodes to Tegra234 DT")
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:13 +01:00
Thierry Reding
b8f44643d6 arm64: tegra: Add missing compatible string to Ethernet USB device
According to the DT schema in usb-device.yaml, each USB device node
needs a compatible string, so add one for the built-in USB Ethernet
device on Jetson TX1.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:13 +01:00
Thierry Reding
6f380a4ec0 arm64: tegra: Separate AON pinmux from main pinmux on Tegra194
The registers for the AON pinmux reside in a partition different from
the registers for the main pinmux. Instead of treating them as one and
the same device, split them up so that they are each their own devices.
Also add gpio-ranges properties to the corresponding GPIO controllers
such that the pinmux and GPIO controllers can be paired up properly.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:13 +01:00
Vidya Sagar
794b834d4c arm64: tegra: Add ECAM aperture info for all the PCIe controllers
Add the ECAM aperture information for all the PCIe controllers of
Tegra234.

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:13 +01:00
Thierry Reding
b6e097df67 arm64: tegra: Remove clock-names from PWM nodes
The Tegra PWFM controllers use a single clock, so there's no need for a
clock-names property.

Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:12 +01:00
Dipen Patel
8fbd2d1189 arm64: tegra: Enable GTE nodes
Add and enable AON and LIC GTE nodes by default.

Signed-off-by: Dipen Patel <dipenp@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:12 +01:00
Jon Hunter
501c9e7ca6 arm64: tegra: Update console for Jetson Xavier and Orin
The Tegra Combined UART (TCU) is the default serial interface for Jetson
Xavier and Orin platforms and so update the bootargs for these platforms
to use the TCU.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:12 +01:00
Sandipan Patra
daf9259976 arm64: tegra: Enable PWM users on Jetson AGX Orin
Enable additional PWM controllers in device tree so that the PWM pins on
the Jetson AGX Orin Developer Kit 40-pin header can be used.

Signed-off-by: Sandipan Patra <spatra@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:12 +01:00
Thierry Reding
58bf48a25a arm64: tegra: Add missing whitespace
The unit-address of a node should be separated from the opening brace by
a space.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:11 +01:00
Thierry Reding
7815954203 arm64: tegra: Sort nodes by unit-address
The P2U nodes that were recently added were not added in the correct
order. Sort them in the right place by unit-address.

Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:11 +01:00
Prathamesh Shete
d71b893a11 arm64: tegra: Add Tegra234 SDMMC1 device tree node
Add device tree node for Tegra234 SDMMC1 instance.
Add and enable SD card instance in device tree.

Signed-off-by: Prathamesh Shete <pshete@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:11 +01:00
Jon Hunter
1bbba854bc arm64: tegra: Add SBSA UART for Tegra234
Populate the SBSA UART for Tegra234 and enable this UART for Jetson AGX
Orin.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:11 +01:00
Jon Hunter
7a2c613bdb arm64: tegra: Add PWM fan for Jetson AGX Orin
Add the PWM fan node for the Tegra234 Jetson AGX Orin platform.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:11 +01:00
Jon Hunter
2566d28c40 arm64: tegra: Populate Tegra234 PWMs
Populate all the PWM devices for Tegra234. Finally, update the
compatible string for the existing 'pwm1' node to just be 'tegra194-pwm'
and remove the fallback to 'tegra186-pwm', which aligns with the
binding documentation.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:11 +01:00
Jon Hunter
04491207d2 arm64: tegra: Remove unused property for I2C
Commit 156af9de09 ("arm64: tegra: Add Tegra234 I2C devicetree nodes")
populated the I2C device nodes for Tegra234. One of these nodes
contains the property 'nvidia,hw-instance-id' which is neither
documented or used. Remove this unused property.

Fixes: 156af9de09 ("arm64: tegra: Add Tegra234 I2C devicetree nodes")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:10 +01:00
Vidya Sagar
248400656b arm64: tegra: Fix Prefetchable aperture ranges of Tegra234 PCIe controllers
commit edf408b946 ("PCI: dwc: Validate iATU outbound mappings against
hardware constraints") exposes an issue with the existing partitioning of
the aperture space where the Prefetchable apertures of controllers
C5, C7 and C9 in Tegra234 cross the 32GB boundary hardware constraint.
This patch makes sure that the Prefetchable region doesn't spill over
the 32GB boundary.

Fixes: ec142c44b0 ("arm64: tegra: Add P2U and PCIe controller nodes to Tegra234 DT")
Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:10 +01:00
Mikko Perttunen
68c31ad011 arm64: tegra: Add NVDEC on Tegra234
Add a device tree node for NVDEC on Tegra234.

Booting the firmware requires some information regarding offsets
within the firmware binary. These are passed through the device
tree, but since the values vary depending on the firmware version,
and the firmware itself is not available to the OS, the flasher is
expected to provide a device tree overlay with values corresponding
to the firmware it is flashing. The overlay then replaces the
placeholder values here.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:10 +01:00
Mikko Perttunen
e25770feb6 arm64: tegra: Fix ranges for host1x nodes
The currently specified 'ranges' properties don't actually include
all devices under the host1x bus on Tegra194 and Tegra234. Expand
them appropriately.

Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2022-11-21 13:30:10 +01:00
AngeloGioacchino Del Regno
c9e7d2166a arm64: dts: mediatek: Add support for MT6795 Sony Xperia M5 smartphone
Add a basic support for the Sony Xperia M5 (codename "Holly")
smartphone, powered by a MediaTek Helio X10 SoC.

This achieves a console boot.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221027095504.37432-7-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:20:16 +01:00
AngeloGioacchino Del Regno
d83f8a42e6 arm64: dts: mediatek: mt6795: Add support for eMMC/SD/SDIO controllers
Add the mmc nodes to support all of the four controllers, used for
eMMC, SD/MicroSD and SDIO storage.
All of these controller nodes are left disabled by default, as
usage is board dependent.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221027095504.37432-5-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:20:16 +01:00
AngeloGioacchino Del Regno
09608ccc8a arm64: dts: mediatek: mt6795: Add support for APDMA and wire up UART DMAs
This SoC has a DMA controller with tx/rx channels for all of the
UART controller IPs: add the apdma node and wire up the DMAs on
all controllers.
When one of the UART controllers is used as a serial console,
the DMA will be automatically ignored.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221027095504.37432-4-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:20:16 +01:00
AngeloGioacchino Del Regno
12a36f028a arm64: dts: mediatek: mt6795: Replace UART dummy clocks with pericfg
The UART nodes had a dummy clock for early bringup, as it is
expected that these are left on by the bootloader: now that
the pericfg clock controller is supported, we can replace
them with the real clocks.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221027095504.37432-3-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:20:16 +01:00
AngeloGioacchino Del Regno
f89afcfc33 arm64: dts: mediatek: mt6795: Add topckgen, infra, peri clocks/resets
Add nodes for topckgen, infracfg and pericfg, providing various
clocks and resets and needed to support basic IPs of this SoC.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221027095504.37432-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:20:16 +01:00
Bo-Chen Chen
957d4ac7c5 arm64: dts: mediatek: cherry: Add edptx and dptx support
In cherry projects, we use edptx as the internal display interface
and use dptx as the external display interface. To support this, we
need to add more properties.

- Add pinctrls for edptx and dptx.
- Add ports for edptx and dptx.

The port connections for the internal and external display:
dp-intf0 -> edptx -> panel
dp-intf1 -> dptx

The edptx endpoint is kept empty for now, as the panel addition will
come in a later commit.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221110063716.25677-5-rex-bc.chen@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:15:00 +01:00
Bo-Chen Chen
b1bf55700a arm64: dts: mediatek: cherry: Add dp-intf ports
Dp-intfs provide the pixel data to edptx and dptx. To support edptx
and dptx, we need to add dp-intf0 and dp-intf1 ports.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221110063716.25677-4-rex-bc.chen@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:15:00 +01:00
Bo-Chen Chen
64196979f9 arm64: dts: mt8195: Add edptx and dptx nodes
In MT8195, we use edptx as the internal display interface and use
dptx as the external display interface. Therefore, we need to add
these nodes to support the internal display and the external display.

- Add dp calibration data in the efuse node.
- Add edptx and dptx nodes for MT8195.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221110063716.25677-3-rex-bc.chen@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:15:00 +01:00
Bo-Chen Chen
6c2503b585 arm64: dts: mt8195: Add dp-intf nodes
Dp-intfs provide the pixel data to edptx and dptx. To support edptx
and dptx, we need to add dp-intf0 and dp-intf1 nodes.

Dp-intf0 is for edptx and dp-intf1 is for dptx.

Signed-off-by: Bo-Chen Chen <rex-bc.chen@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221110063716.25677-2-rex-bc.chen@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:06:17 +01:00
AngeloGioacchino Del Regno
5f535cc583 arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name
Update its unit name to oscillator-26m and remove the unneeded unit
address to fix a unit_address_vs_reg warning.

Fixes: 464c510f60 ("arm64: dts: mediatek: add mt6797 support")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-9-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:51 +01:00
AngeloGioacchino Del Regno
509438336c arm64: dts: mediatek: pumpkin-common: Fix devicetree warnings
Fix the pinctrl submodes and optee node to remove unneeded unit address,
fixing all unit_address_vs_reg warnings.

Fixes: 9983822c8c ("arm64: dts: mediatek: add pumpkin board dts")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-8-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:51 +01:00
AngeloGioacchino Del Regno
ec1ae39a8d arm64: dts: mt2712-evb: Fix usb vbus regulators unit names
Update the names to regulator-usb-p{0-3}-vbus to fix unit_address_vs_reg
warnings for those.

Fixes: 1724f4cc51 ("arm64: dts: Add USB3 related nodes for MT2712")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-7-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:51 +01:00
AngeloGioacchino Del Regno
3770631568 arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names
Update the names to regulator-vproc-buck{0,1} to fix unit_addres_vs_reg
warnings for those.

Fixes: f75dd8bdd3 ("arm64: dts: mediatek: add mt2712 cpufreq related device nodes")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-6-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:51 +01:00
AngeloGioacchino Del Regno
1d4516f53a arm64: dts: mt2712e: Fix unit address for pinctrl node
The unit address for the pinctrl node is (0x)1000b000 and not
(0x)10005000, which is the syscfg_pctl_a address instead.

This fixes the following warning:
arch/arm64/boot/dts/mediatek/mt2712e.dtsi:264.40-267.4: Warning
(unique_unit_address): /syscfg_pctl_a@10005000: duplicate
unit-address (also used in node /pinctrl@10005000)

Fixes: f0c64340b7 ("arm64: dts: mt2712: add pintcrl device node.")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-5-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:51 +01:00
AngeloGioacchino Del Regno
e4495a0a8b arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators
Rename the fixed-clock oscillators to remove the unit address.

This solves unit_address_vs_reg warnings.

Fixes: 5d4839709c ("arm64: dts: mt2712: Add clock controller device nodes")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-4-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:50 +01:00
AngeloGioacchino Del Regno
4d759c524c arm64: dts: mt6779: Fix devicetree build warnings
Rename fixed-clock oscillators to oscillator-26m and oscillator-32k
and remove the unit address to fix the unit_address_vs_reg warning;
fix the unit address for interrupt and intpol controllers by
removing a leading zero in their unit address.

This commit fixes the following warnings:

(unit_address_vs_reg): /oscillator@0: node has a unit name, but
no reg or ranges property
(unit_address_vs_reg): /oscillator@1: node has a unit name, but
no reg or ranges property
(simple_bus_reg): /soc/interrupt-controller@0c000000: simple-bus
unit address format error, expected "c000000"
(simple_bus_reg): /soc/intpol-controller@0c53a650: simple-bus
unit address format error, expected "c53a650"

Fixes: 4c7a626077 ("arm64: dts: add dts nodes for MT6779")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-3-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:50 +01:00
AngeloGioacchino Del Regno
7898d047b1 arm64: dts: mt7896a: Fix unit_address_vs_reg warning for oscillator
Rename the oscillator fixed-clock to oscillator-40m and remove
the unit address to fix warnings.

arch/arm64/boot/dts/mediatek/mt7986a.dtsi:17.23-22.4: Warning
(unit_address_vs_reg): /oscillator@0: node has a unit name,
but no reg or ranges property

Fixes: 1f9986b258 ("arm64: dts: mediatek: add clock support for mt7986a")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221013152212.416661-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 13:02:50 +01:00
AngeloGioacchino Del Regno
513c43328b arm64: dts: mediatek: mt8195: Fix CPUs capacity-dmips-mhz
The capacity-dmips-mhz parameter was miscalculated: this SoC runs
the first (Cortex-A55) cluster at a maximum of 2000MHz and the
second (Cortex-A78) cluster at a maximum of 3000MHz.

In order to calculate the right capacity-dmips-mhz, the following
test was performed:
1. CPUFREQ governor was set to 'performance' on both clusters
2. Ran dhrystone with 500000000 iterations for 10 times on each cluster
3. Calculate the mean result for each cluster
4. Calculate DMIPS/MHz: dmips_mhz = dmips_per_second / cpu_mhz
5. Scale results to 1024:
   result_c0 = (dmips_mhz_c0 - min_dmips_mhz(c0, c1)) /
               (max_dmips_mhz(c0, c1) - min_dmips_mhz(c0, c1)) * 1024

The mean results for this SoC are:
Cluster 0 (LITTLE): 11990400 Dhry/s
Cluster 1 (BIG): 59809036 Dhry/s

The calculated scaled results are:
Cluster 0: 307,934312801831 (rounded to 308)
Cluster 1: 1024

Fixes: 37f2582883 ("arm64: dts: Add mediatek SoC mt8195 and evaluation board")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221005093404.33102-1-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2022-11-21 12:52:38 +01:00
Arnd Bergmann
cafd3d346a i.MX fixes for 6.1, part 3:
- Fix a small memory leak in mach-mxs code.
 - Correct PCIe pad configuration for imx8mp-evk board.
 - Fix ref/tcxo clock frequency property for imx6q-prti6q board.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmN4hkUUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM4PhwgAmV0aEOsxk+tUOwc7Tcw96Og82xOj
 M20kLbglLlN0ipgWGOFjov2+5k7tautTDNS4R8rPxuM+YKRwrkihPa3x5qvcOl3y
 ionJx9/JsZPBNmbWLlKqsXO3ST+YqlbgmLEi/fCKNMqXbQHmBJjdnrDq/Kb1WopC
 YIHb1R5T4KMAmhnYQzjrmxgf/mDMTpcJAwOX4XXGMTJ5Knp4NoMNFGaHrvnbc6EK
 7FWZtApuX2e+M2Bke+STODeJFkoGZb/iCbruS7xuiSECbGZVpYL4SYXIaCSdDvTC
 w6Jbjyx5rXDqVWLmvQU9Jr8nNv2YlEWEZ+AX25OLSrKVWMznSzORigd5WQ==
 =dJzd
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7YIIACgkQmmx57+YA
 GNmD5g//RhkG47HCEqFt0c5sg8S5iX0u//aigLytgr5ludb7G6fEzxhl8aJsxIRP
 aXaSJj730ZUyqeb8cp69W02epi++Nm/5J9TarTlGWB/YGeJyxcoOyd/mGcZT94Nv
 RDFFNdR7miOlg6QQqO7bjNzZMs05qaOmm22F5qOQpglsUJTWGoy3Cwy3cMzjQt5W
 c/dMgV+Q7DZcyqMMWIUDlZidfmoi9CYgdlf37HqZ21W+bg248/MkQLLu+dqrIUGR
 VukP0w6A8NjF9i1m5ud0YVmZ6NzeXdLEP0IDPxXi60eJXivNZT0EezIomM3V0yUf
 xOlFE4Zz7EtY2haC/4QpWiPRH7l46PMdN+9kePXlTAJodnqRgxfSmxIOU0kTBVXc
 WvDGVZKPNIqHb07QB99+MaO+gFG2KL5JGpxwF5ZIKoMM1Nyo9J1upUUttk/lw7pJ
 3CSXeglSSmwijVEJ3fy/N4cPN4432wxlqJlS+hm9w0ZlGpxEffKPlH82S6OgVvaW
 YUIlQj8+HWdq1rUdgNkUEakslHUtdTW1nhcJPUlGmtv1LHVk8zClmri7cr3ZgS/C
 bx0tiUuTuQwyxEU1DliOEfR5LBzgztcjb1aPLY+llLOo/2YdhtT8Zx5CgTDpvyk7
 dF/BR5Wlp8HptAazmylIUBSu1ltaPzHmkPrkL7nGSjfhgR2/ylw=
 =hzE+
 -----END PGP SIGNATURE-----

Merge tag 'imx-fixes-6.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes

i.MX fixes for 6.1, part 3:

- Fix a small memory leak in mach-mxs code.
- Correct PCIe pad configuration for imx8mp-evk board.
- Fix ref/tcxo clock frequency property for imx6q-prti6q board.

* tag 'imx-fixes-6.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  ARM: dts: imx6q-prti6q: Fix ref/tcxo-clock-frequency properties
  arm64: dts: imx8mp-evk: correct pcie pad settings
  ARM: mxs: fix memory leak in mxs_machine_init()

Link: https://lore.kernel.org/r/20221119073812.GQ16229@T480
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 12:26:58 +01:00
Arnd Bergmann
e7135a2843 - RSB bus communication fixes
- missing IOMMU reference property to H6 Hantro G2
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSPRixG1tysKC2PKM10Ba7+DO8kkwUCY3fnrQAKCRB0Ba7+DO8k
 k6W1APwNIbTq+OWpgQpJckCY9GfWGmxinY90BInBcK/yd7FNfAEAx/zXrPj0RjA1
 cIyZirTwvOESV4KjGeuIBXWG+IAqeAQ=
 =fyuv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7YFkACgkQmmx57+YA
 GNlw+xAAgrOFQqqwdXqngNVQNNrt+xAhGBfDy45aTLbPJsx2cM25BgZ9w4EwRjRV
 kEqUPg51Ph8Junk0k+zvDi7iHU2Oml8ve/nn6QMfithu/uKDnWOerd7w0zkbUGyx
 oD3eHlMZPmzSB26YyZNvBQ3XOHpSJZiihWVkeiBnxyUt9hk15eLbmrEvrdn8khWx
 j1YRQ1PfowrH+IdDDx1zkNPoMRSS9IwguZm69JfN5HWFc6oxNT78wtoGN13sww/f
 dZs+4Syq0fwTKNPynuQcWb7JSpuk0iRiHyNM3mZIuCrkO8nQEd53Gcxfq6cAVqEk
 FGdLwHIeLq4eCVnxc9l7612QNwdpy8wqdlvTEL3Mp/eCfWnXPH6kbn4SNVJ1dpcd
 4j2zdcnab5atdQpDpzLb4rrw2SZ/k9kSfISPWQKHJP+eK5Kh1OyIP0fHD/L9trAL
 muP1A0q56Xhzvc/rSashtmGZbMIpT2efxqEO1YNo33BQcuBWLoHE+tmXf2zb/iNl
 ithqHYTObLI/PiOaPFqw27/9qh7WhIHYsSetFdDvk9j6c7BuiIuXhZBZdaXcHVgK
 7BWzExQfgvjWGFMnVguZKx7tfNQC84barazNJXmowVFPCI/DBCgZCCd5GbM//Pgg
 atMDDZeDbXjjMzVCfStmGuPxPnpuoYdl6vbq3esHv6SMAzerZSY=
 =yQ3J
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-fixes-for-6.1-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/fixes

- RSB bus communication fixes
- missing IOMMU reference property to H6 Hantro G2

* tag 'sunxi-fixes-for-6.1-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  arm64: dts: allwinner: h6: Add IOMMU reference to Hantro G2
  media: dt-bindings: allwinner: h6-vpu-g2: Add IOMMU reference property
  bus: sunxi-rsb: Support atomic transfers
  bus: sunxi-rsb: Remove the shutdown callback

Link: https://lore.kernel.org/r/Y3ftpBFk5+fndA4B@jernej-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 12:26:16 +01:00
Neil Armstrong
62e73f0006 arm64: dts: amlogic: add initial Odroid Go Ultra DTS
This adds initial support for the Hardkernel Odroid Go Ultra.

The Odroid Go Ultra is a portable gaming device with the following
characteristics:
- Amlogic S922X SoC
- RK817 & RK818 PMICs
- 2GiB LPDDR4
- On board 16GiB eMMC
- Micro SD Card slot
- 5inch 854×480 MIPI-DSI TFT LCD
- Earphone stereo jack, 0.5Watt 8Ω Mono speaker
- Li-Polymer 3.7V/4000mAh Battery
- USB-A 2.0 Host Connector
- x16 GPIO Input Buttons
- 2x ADC Analog Joysticks
- USB-C Port for USB2 Device and Charging

The following are not yet handled:
- Battery RK818 Gauge and Charging
- Earphone stereo jack detect
- 5inch 854×480 MIPI-DSI TFT LCD

Link: https://lore.kernel.org/r/20221031-b4-odroid-go-ultra-initial-v2-2-a3df1e09b0af@linaro.org
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2022-11-21 11:51:56 +01:00
Arnd Bergmann
55aa08a5be - Added H616 USB node
- Enabled bluetooth on Pinebook A64
 - Added f1c100s PWM, I2C, CIR and LRADC nodes
 - Added USB HCI0 PHYs property to H3/H5
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSPRixG1tysKC2PKM10Ba7+DO8kkwUCY3fo/wAKCRB0Ba7+DO8k
 k2/RAP95cR5K7szlGWYl7nty5XHbCzE1+8+LSvtZ6bA1Z29Z0AD/UZaQNUS4Rnlz
 zAPgR5HJ5h3RiejIaMgk4IhjIwDMLAI=
 =UTsi
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7S+sACgkQmmx57+YA
 GNkHlQ//e4AXpva6tkLDYEMHRuV5AldWV7ogu6oNm0/ZdPVNSV/lnRD7aWV3s9en
 1i8DkaakW0eblmUJXqP7wVHVnoeOJ4oklFgWb6VYnrjNj34/ZhwfJPqh64xwCkEV
 O3/4UO3C1gBSPf0bBghHe5EzG83dZB6Lav1E2xDyXkg0NQQwjvJKkCkpJsISazGU
 40XDr7FofTJGpEXiyf+1DHwFmNWgCat+7EF0ozdf4/iYGp3E3gxhUJVOsrnw0oyl
 Y8T11tt72E1jq57WPi8IO4e5MtC1yyS/24gmA3EIPM7Zq8mi+GqMVtdV0KSzyYIJ
 ikIrKHf7cSfKn+k+CPYnrf+XLyXLApioTXq7AZWfwUvjTklX0Qdnl6l3YdEgpWHP
 HjKq7w/MgCCFypxgDJB3XuPOHIAY2poMw0Pc3luSlQbIA0TixVe75DkKyD8vHN85
 vr0b7js0acjvwn7gN3ZFkBU+DoinB0bY2RqYgSZdoBHvYFFhcQhLhKoZXHGXZiDn
 zsKkRrIA4rb+2Ska0Q3Kg2cRdvTpU391wZf9teg2zywMtmb/7PhKZtDh4reOZ3A9
 Dt3uOp6zQB8og+KMIA2qlt5DzKMB6uqzDJXIQI4ULt96+R98o0WGm9l6C+j27984
 YPW0zwdcYqzoHm6RjOWZ9BV/0CdL/8jHOc3uv6yEBj/emarFmas=
 =K22m
 -----END PGP SIGNATURE-----

Merge tag 'sunxi-dt-for-6.2-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into soc/dt

- Added H616 USB node
- Enabled bluetooth on Pinebook A64
- Added f1c100s PWM, I2C, CIR and LRADC nodes
- Added USB HCI0 PHYs property to H3/H5

* tag 'sunxi-dt-for-6.2-1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
  ARM: dts: sunxi: H3/H5: Add phys property to USB HCI0
  ARM: dts: suniv: f1c100s: add LRADC node
  ARM: dts: suniv: f1c100s: add CIR DT node
  dt-bindings: media: IR: Add F1C100s IR compatible string
  ARM: dts: suniv: f1c100s: add I2C DT nodes
  ARM: dts: suniv: f1c100s: add PWM node
  dt-bindings: pwm: allwinner,sun4i-a10: Add F1C100s compatible
  arm64: dts: allwinner: a64: enable Bluetooth on Pinebook
  arm64: dts: allwinner: h616: X96 Mate: Add USB nodes
  arm64: dts: allwinner: h616: OrangePi Zero 2: Add USB nodes
  arm64: dts: allwinner: h616: Add USB nodes
  dt-bindings: usb: Add H616 compatible string
  ARM: dts: axp22x/axp809: Add GPIO controller nodes
  ARM: dts: axp803/axp81x: Drop GPIO LDO pinctrl nodes

Link: https://lore.kernel.org/r/Y3fuAosinWbrj+Dy@jernej-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:59:07 +01:00
Arnd Bergmann
6f8d2a2037 Samsung DTS ARM64 changes for v6.2
Correct pin drive strength macros (names) and values used on Tesla FSD
 SoC.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmN0rS8QHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1+RgD/9b0HVcfgBsvp/ZyFe2Eor20VYnPhCqSbk4
 P/6x1huHcGR9BC8jOzhQv9NzvUTZ10KrhiyhmV8AzeEoLR8hI6kZYZ0YzZwUL9FW
 4pqaDs5xn519QOxt6qqRTiXPbeshiQ/VoXDxpuHIi7irgdzfd7qlzEVuZKBTeKvi
 6H6WTrkoxzr31wyzH3LmZOTZzc4eIaQqBLrFo563S52Uw/jo71fWhhxLD4Q6C4+o
 rHIZ7tjcgaIyHIjhtRkWLk1bJnsYcG1tenXCw48sjILqlskso0GPeD+SG9BP8S+o
 vdC7WJzkt2Kgk+JRTE5qlBXepjIM9NJqczysrdkMPRvDUTQIOEddDrwYkt97B7Nj
 mEEiZ8zCXsbzIIS2v8UOwZHjloHy+15HM6jAzVrwwGJIMd514aM+kmIEK6Ucrd3c
 F3WaBG24D5kJ3dALe1oJWggX8soOtqIxzA51qMQxmw+iVj/G13WjiY/pIN/4b+zq
 ex2bsNHjaDTi7ye7jjNb0FGLjrCTfVftpXNQStS1QpLUFYZsP2VRt6Bi0uM/WiNU
 8HZovJdPkPBJFUeTjMideC5wQR9wIgDB8+LGkhP+PCGH7d4KbtxvZEGPBHFT2PVq
 +lpuul5XFF2v4ZAOlpM0KIbav7XdScRgn+Zw5g8tu/d2yAsRQ/bxCJ+1slrmnOk6
 oDjXYnM01Q==
 =ckQO
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SrEACgkQmmx57+YA
 GNlMIRAAnWhgP16nYA3maeSKqkvHlxugxtYH4de/fQnmo6EsJXcBZKOsn+2EaW5X
 OUa/YT6r/sDjAgVHGrmUMxYwIejjqmH7gR6/AmMmDQpTjk20blVwaTm9jtac0HAd
 UXNfhB1790UqG4LwJVojgxsFouwv8DS40/fVWhJYnfOfW5t63vF0Vytl1ZnL0n1P
 PPvqFdAU9mAJotlPm7rScxYilVOKQbG59fSgIUDWZgTFp5FtZmUOa8OzMkzaUq+H
 8X3mZZb7tBpMh2rLmxo+Lrj0DKsfAcXDZ8/b8hAn+P8xzeD03BxQWAIjJ07RkYh8
 UwtvASEeUO6EHW7Ugi0DB/Xs7XwgyxmrxBCOodqCPvRJgCNgcAWsavJo7nv3noBX
 IzTsaMpJRiGYwoVw0xwxmFgOCHGsjDqnBjUHrgT22OJ2iRFAdQU0m9nxA372kWMt
 VG9qNtKgTApTQSeNM1AMY14wU76Xb3t6RGizozm4B9ZZBbO31KQAzhLoBMzQ9Ev3
 y5lLTseqmibJvNBUQKevA96KWTlspaktq+OiZP4Inmg6aPZh+IOa0MkG1ME/TnZK
 JxhyE8xQ7QRagHcoAk9NbwCZN5U3xJGCL80vwp+whvuGAirpsCfER/7fyinpNsOq
 0ivvC/q1LpW9ICO9FEkh4HzJqSnyZFmLautPbYNQu7lA0ectGVI=
 =+Slu
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM64 changes for v6.2

Correct pin drive strength macros (names) and values used on Tesla FSD
SoC.

* tag 'samsung-dt64-6.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: fsd: fix drive strength values as per FSD HW UM
  arm64: dts: fsd: fix drive strength macros as per FSD HW UM

Link: https://lore.kernel.org/r/20221116093010.18515-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:53:53 +01:00
Arnd Bergmann
972d89438d i.MX defconfig change for 6.2:
- Enable Renesas 9-series PCIe clock generator, SNVS LPGRP and i.MX8MP
   interconnect driver support in arm64 defconfig.
 - Enable Silergy SY7636A EPD PMIC, CYTTSP5 touchscreen and USB GPIO
   extcon support in imx_v6_v7_defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCgAyFiEEFmJXigPl4LoGSz08UFdYWoewfM4FAmN4ygEUHHNoYXduZ3Vv
 QGtlcm5lbC5vcmcACgkQUFdYWoewfM7FBwf8CJ4kXlG1DFLgYgzM2VjIe0GcjLJa
 aq9bmcGz5ePMufgh+A7S/SNlCH7BiBC2edfPUJHdcmC5UPyD9uVsCP/Gjzp+87Ww
 oHOKwmoCIdg1Tr9izdL3J4xnmiMGxCaJ38geNb8evoYWPcONVSis/WbHO8Mgf2o0
 l/g/Aq0Gf18w1I8J37RSjLfWF58AwFEPTjAYAalZmVqO8h8Vd713BlGvaneSZlBb
 w2G+onguugFerO33ubPS6t3Ql+kUsFNDEpTYEoBi3nWBMIzVHVuFlNx3Fx/d5MKZ
 f+s0YpRRb3/+Mbtar6d0m8nlKksnOyxMthI3dx9c/ZHno7IRwSJwQOI1Qw==
 =Ffj7
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SgsACgkQmmx57+YA
 GNm5BhAAk4wFMxLGKXbQTVSa1RGozqhs8Hbwswwjel4ZDp5xv97g6b7joDYxWgf0
 3+uNjMHwPxQiJKvO+P4RU6iy3D/81P1CuxmQeor5QTxRrwei6VnqL1Z1GK73Cwdm
 W0r9q3B+ej40Y1JGyGUZh4uWR9n6Afd7XtYZ/8EeebJlVEq+SmxMPHPTvEnISp7I
 JEMO/DzM4VzqFHRSedsDrEjF1oGGzKgRfTEz8TIkSh4Vyx2IXVT4XKHllIfSjhGi
 oYlt2i+nMSFAHCX2L8A0yTJMN9M3InKF2kpw1dGeA+HP5y5r1dXT4GWTPkXQgd5x
 NA/dTx2C2FMe4IX9CmVSLeQg2zkZstv/dDKCNqFL1/jBP0zvsJRjQDBr34G/27PK
 C4J4M8Nv4b27sF88e67wXKbAaY7YuTBlrD7VPlI7bAmjCLhPM07jj4Ic8Nzs5149
 CFOA4OWJ7jJMYkHne/w0ZvLULI6QNFDE0LqvHSPKFovRWDE6fxkBoy5BV274PJKu
 wgW/+qk2ghlHlt0hJBD+vIK+6UDHYyVMP1zzEvLle6DVofY1owo0BM5KlIr9CdZd
 Tr3NTRKzzQk29byt6s3BKxPg49CMMFypK3tAA0HBOr6E3TahyREilPRiB52z3Id9
 RMktT5bmdGR6CAsGVfYyqGF66OhgLq9tXiqXvBg4o2ZfurOmOik=
 =RntO
 -----END PGP SIGNATURE-----

Merge tag 'imx-defconfig-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/defconfig

i.MX defconfig change for 6.2:

- Enable Renesas 9-series PCIe clock generator, SNVS LPGRP and i.MX8MP
  interconnect driver support in arm64 defconfig.
- Enable Silergy SY7636A EPD PMIC, CYTTSP5 touchscreen and USB GPIO
  extcon support in imx_v6_v7_defconfig.

* tag 'imx-defconfig-6.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
  arm64: defconfig: Add Renesas 9-series PCIe clock generator
  ARM: imx_v6_v7_defconfig: Enable the cyttsp5 touchscreen
  ARM: imx_v6_v7_defconfig: Enable silergy,sy7636a
  ARM: imx_v6_v7_defconfig: Enable USB GPIO extcon support
  arm64: defconfig: enable i.mx 8m plus specific interconnect support
  arm64: defconfig: enable snvs lpgpr support

Link: https://lore.kernel.org/r/20221119125733.32719-6-shawnguo@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:51:07 +01:00
Arnd Bergmann
4b7067ae93 arm64: tegra: Default configuration updates for v6.2-rc1
This enables several audio-related options, as well as the Tegra186
 timer and hardware timestamping engine drivers.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCAAxFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmN4LM8THHRyZWRpbmdA
 bnZpZGlhLmNvbQAKCRDdI6zXfz6zoWbbD/4gvLHjW3sqUvh8c5sciH8mMUMTZpUA
 4fnaqyt5Ya2Un05mWkVcRwgC8itXwy9FLf9L2coaDBEly1FokDZrapNS9TVd7GtA
 ihBRig13wXcx8ZtaSEkj5F/juf1GDUghMg/v8M/qFv7cYuSbbYDGZ40pfd/NaAlE
 zaGY3S6dampIm9N2XQegaRNGoRscAMIH0/Qa9MJkvvs8VQ7eB0C3/lOs3wUIv+8g
 G4bZrXyIMfrEsIo67v/xOUwkhts8VHSSWOr2oLnJd8rXvY0Sy/H3kXu3EPjQTzne
 f4IegmSAqUQ1oc5Ob/WgQ6nwoVKftgQfkxv6naLJHKY8F0r+3netKEarC/K66Ix/
 ogvT+RUOpBUvWbCpohQZIpZj95LEe/skaVUCg6BGBqj+g9IbYZPBw7V/5PYoJl9Q
 3Pw6vVMKheWR0RD5M+5gO/yqxTZ8bW5lFzrRbsmqtMsIVgg9gBrVvReRGr0RmsVv
 /qYCXR9rxjQA4A4dCTFCTOw1diXDwGnjIXutWi9ay1BLtavfnmm1OJVnHn9+1OaR
 FK7LWkOWTENyhxYCa/+kSbCS8oW293MGDtlMDshk6Lb47srAHYr0JI3st4D6iQ1j
 CadIZQy/lqEtcjS/fuyYvaN5exhS3G8Z1c5R+rhUqtr8YxrD6eR+nMlhvx0mb7lw
 92aYzMeqKZDjjQ==
 =fbGh
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7ScoACgkQmmx57+YA
 GNmSwg//b8WiBxMxphDloxGUKQy9VBw5zOIm5UVHm5O6vA7zMr/OMgJ+MNVTaN9H
 XzS437/DUVLW44ZpA4t+drE8ou3lrkOChA3nqHB7TV88A8lk7fvKh9PFkciB0K2M
 i/bcdoQg9qRp7RnTuyQsItgDqxm741cS2Hz+Uw3HU6c5mjyLthd/r+AeuQvuxFwJ
 gI/iHIms68Ux6RGChSyHGX2lYT9Cx06J+TLY54mWnjlDciSMQis2Vb15Dg2gTWoA
 Mew7mPVOqAeRwKfUFMP7I07j0aZuatH1+E3m7XMu6vq5j8o3Bzn2OQhQenAz/S5M
 lNzo/nd1PWgUFMHe9JNGsqFFyOjsU5YQcEgWSlFVc2QqeU2Flzc4lpiM7gfGwrVb
 dSpde7o0Yvv7kMNobvS+FOFKSNmXS8T0gPKOtHlM2WYyyjdjbS6sWkOBIDuSFYPp
 9MDpjRJPYOnf0soKaYhpY4gK43Be8eUDZC/oWQtK0caUhZ4ABVxY/vzXMHPX+oFd
 BGfozXKhWH0VVTkLEm8AaUMmhQCf9sLoNIU7PL2aLD0XmErv24QviSOjZc4p8u+p
 t6loMh7CDNDp1O9Tj0WcMB7W2vPTuacde44ESx6Ph5j68UCIsr9apME33aUI/Qbd
 RVIB+sk2f2CUnfFBpEKrUQaZTh8aFw9aCNg2OrcCBiNcJ44oXtc=
 =zh22
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.2-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/defconfig

arm64: tegra: Default configuration updates for v6.2-rc1

This enables several audio-related options, as well as the Tegra186
timer and hardware timestamping engine drivers.

* tag 'tegra-for-6.2-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: defconfig: Enable HTE config
  arm64: defconfig: Enable Tegra186 timer support
  arm64: defconfig: Enable SND_ALOOP
  arm64: defconfig: Enable couple of audio codecs

Link: https://lore.kernel.org/r/20221119012025.3968358-8-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:50:02 +01:00
Arnd Bergmann
1d4456221f Renesas ARM defconfig updates for v6.2
- Enable support for Renesas R-Car S4-8 Spider Ethernet devices in the
     arm64 defconfig.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCY3evhgAKCRCKwlD9ZEnx
 cI+DAQDuYqax077qNI/tBd2LXFBDv3BkTAGhZpaYcyJEXBf1bQD/bjIzTEzKJjN5
 9Ky8xneA3N4SnvTMW+P29iLZL+7m+Qs=
 =T6Fz
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmN7SWIACgkQmmx57+YA
 GNl/7g//RdVdEGLzbQeItsMxvz5t8TDnX0oZ/ASMB8YumlfxrsLQlioAlvDUKE+6
 osm4rH2bVlvg4a7cY5LdGoCBmOtWHo53ON9l3wiyInFUOA+1arREibnrDAL6YkR1
 ddmCk0hm1wpR6ukDndjPmGKw3OWvvkNOQ2yeY/7gTmKUlATOrGyw1UEi/47a13Vu
 ZvEo46no3xfUMQb/CaLCuzOenFLqXqJdrpWgHOc+glWer/GF7AtMPmo81tdkxxNk
 aj8GhZDKVVQMxn7ucO5DfnYxB+5i9m/gLjZZgLven4I1lRp1cHXp8puJUbJ0fTmC
 7/CqhcTjklFyDnpWgJcynvakR4CR0Z//GIPei2V5G7qd3KSyOK0K7pXZDCToZL47
 nVwYAR/8ao5Du9WozOgzAGoUFX/WlXL0orVHzsq31Qa/DN8J7/o/WPlVUWrpNo1d
 pXkm44iVC4guibLYRl+LprSbt6FgnIGHr6mZQ1b04v8+NaIeXOYduyUeNkpGCcdh
 7SIWYDZo4/dA/om8H2taiCAVtAFeOY9nSkQY/4fmH16/bE600hD8qL4HbmLJ6drv
 yUsVN+hAYGSNwiz442jOhl3vIw5qWRFw7EdubH+7Dtl2NY+mJMZP4Uc0xQ6UNKsK
 fFxTSU1zLgYJTJvkjOxDRWoqjrkZTWFIQGWVquMH2TBuQP+Nwtk=
 =eBkH
 -----END PGP SIGNATURE-----

Merge tag 'renesas-arm-defconfig-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into arm/defconfig

Renesas ARM defconfig updates for v6.2

  - Enable support for Renesas R-Car S4-8 Spider Ethernet devices in the
    arm64 defconfig.

* tag 'renesas-arm-defconfig-for-v6.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  arm64: defconfig: Enable Renesas R-Car S4-8 Spider Ethernet devices

Link: https://lore.kernel.org/r/cover.1668788920.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2022-11-21 10:48:18 +01:00
Andrew Davis
599cb2c6d7 arm64: dts: renesas: Rename DTB overlay source files from .dts to .dtso
DTB Overlays (.dtbo) can now be built from source files with the
extension (.dtso). This makes it clear what is the content of the files
and differentiates them from base DTB source files.

Convert the DTB overlay source files in the arm64/renesas directory.

Signed-off-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20221024173434.32518-6-afd@ti.com
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
2022-11-21 10:05:54 +01:00
Marc Zyngier
d56bdce586 KVM: arm64: PMU: Make kvm_pmc the main data structure
The PMU code has historically been torn between referencing a counter
as a pair vcpu+index or as the PMC pointer.

Given that it is pretty easy to go from one representation to
the other, standardise on the latter which, IMHO, makes the
code slightly more readable. YMMV.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-17-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
9bad925dd7 KVM: arm64: PMU: Simplify vcpu computation on perf overflow notification
The way we compute the target vcpu on getting an overflow is
a bit odd, as we use the PMC array as an anchor for kvm_pmc_to_vcpu,
while we could directly compute the correct address.

Get rid of the intermediate step and directly compute the target
vcpu.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-16-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
1f7c978282 KVM: arm64: PMU: Allow PMUv3p5 to be exposed to the guest
Now that the infrastructure is in place, bump the PMU support up
to PMUv3p5.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-15-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
11af4c3716 KVM: arm64: PMU: Implement PMUv3p5 long counter support
PMUv3p5 (which is mandatory with ARMv8.5) comes with some extra
features:

- All counters are 64bit

- The overflow point is controlled by the PMCR_EL0.LP bit

Add the required checks in the helpers that control counter
width and overflow, as well as the sysreg handling for the LP
bit. A new kvm_pmu_is_3p5() helper makes it easy to spot the
PMUv3p5 specific handling.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-14-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
d82e0dfdfd KVM: arm64: PMU: Allow ID_DFR0_EL1.PerfMon to be set from userspace
Allow userspace to write ID_DFR0_EL1, on the condition that only
the PerfMon field can be altered and be something that is compatible
with what was computed for the AArch64 view of the guest.

Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-13-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
60e651ff1f KVM: arm64: PMU: Allow ID_AA64DFR0_EL1.PMUver to be set from userspace
Allow userspace to write ID_AA64DFR0_EL1, on the condition that only
the PMUver field can be altered and be at most the one that was
initially computed for the guest.

Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-12-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
3d0dba5764 KVM: arm64: PMU: Move the ID_AA64DFR0_EL1.PMUver limit to VM creation
As further patches will enable the selection of a PMU revision
from userspace, sample the supported PMU revision at VM creation
time, rather than building each time the ID_AA64DFR0_EL1 register
is accessed.

This shouldn't result in any change in behaviour.

Reviewed-by: Reiji Watanabe <reijiw@google.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-11-maz@kernel.org
2022-11-19 12:56:39 +00:00
Marc Zyngier
26d2d0594d KVM: arm64: PMU: Do not let AArch32 change the counters' top 32 bits
Even when using PMUv3p5 (which implies 64bit counters), there is
no way for AArch32 to write to the top 32 bits of the counters.
The only way to influence these bits (other than by counting
events) is by writing PMCR.P==1.

Make sure we obey the architecture and preserve the top 32 bits
on a counter update.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221113163832.3154370-10-maz@kernel.org
2022-11-19 12:43:47 +00:00
Andrew Davis
4c33cb3128 arm64: dts: freescale: Rename DTB overlay source files from .dts to .dtso
DTB Overlays (.dtbo) can now be built from source files with the
extension (.dtso). This makes it clear what is the content of the files
and differentiates them from base DTB source files.

Convert the DTB overlay source files in the arm64/freescale directory.

Signed-off-by: Andrew Davis <afd@ti.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-19 14:30:40 +08:00
Adrian Alonso
c6c93f7882 arm64: dts: imx8mm-evk: add vcc supply for pca6416
pca6146 requires vcc-supply to work on i.MX8MM-EVK board.

Reviewed-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-19 11:12:29 +08:00
Haibo Chen
2a6b56aafb arm64: dts: imx8m[m,q]-evk: change to use off-on-delay-us in regulator
Some SD Card controller and power circuitry has increased capacitance,
so the usual toggling of regulator to power the card off and on
is insufficient.

According to SD spec, for sd card power reset operation, the sd card
supply voltage needs to be lower than 0.5v and keep over 1ms, otherwise,
next time power back the sd card supply voltage to 3.3v, sd card can't
support SD3.0 mode again.

This patch add the off-on-delay-us, make sure the sd power reset behavior
is align with the specification. Without this patch, when do quick system
suspend/resume test, some sd card can't work at SD3.0 mode after system
resume back.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
2022-11-19 11:11:38 +08:00