Commit graph

24705 commits

Author SHA1 Message Date
Linus Torvalds
b32c6e029c ARM: SoC updates for 6.3
The majority of the changes are for the OMAP2 platform, mostly
 removing some dead code that got left behind from previous cleanups.
 
 Aside from that, there are very minor updates and correctness fixes for
 Zynq, i.MX, Samsung, Broadcom, AT91, ep93xx, and OMAP1.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPtUJwACgkQmmx57+YA
 GNkkqhAAqKN4MyRJgMesZD0SbXrmPCJC7FwLAfr47GdhhanR0sEjLeqtjug4mi1C
 E24ivgegIpVuywOtzMUgGrX37J+mNNrHz5oxF4GORlPPIn4zHwYgaOdftllxkFis
 K1Jk/bZp8PyAJcWDzPJ0Cy29uNypO8lUmZgcyAPBH66O2nSi94IMvjzmEz+uwaI/
 QdQyCo4xY88SW0Zht48PmqwLDTNmJ/mC8IwI4Km92SEn2qO/gn9D1dVKY2sVAFZh
 LaU2v0znYDlQ6rrdkBby3cBj25Q9KzOr62wQ18/AAwDcHuLtVf2aXa94pByB5vDl
 JH2fFQf/eCt/5IXfFrB+iOXGleX2LA0FlMwMuZzvwV0obJPkhia3ismLds1c39uO
 dcaC3mU5D7VSEuq+q4eSL87aCHxIH/BO9m9DJycNG6n+Bk46eWKne2gMIBfbunf3
 gwtJlrWl7FzpJdvc/xbdbILlUaBvSUsZorRcVraQbK554zOVTJRXmQpz4Nz8nfSP
 olNmeqNg8jRK9rDHWUYJxPgp4kJ/bHXIdacinVYkkXZwqmd26yDNkUSkmBGvUDvP
 UghiV1R4snjHRG9syxZexyHO9Tz/7zNxOwXGcl5Z8KNg6b9xi8kKLRkd4oIAHSjs
 /x5OBPkwSdauzqFJV71qns3HnEazAksUe7fxc1DPCPNI1kpfQtY=
 =4Xcx
 -----END PGP SIGNATURE-----

Merge tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC updates from Arnd Bergmann:
 "The majority of the changes are for the OMAP2 platform, mostly
  removing some dead code that got left behind from previous cleanups.

  Aside from that, there are very minor updates and correctness fixes
  for Zynq, i.MX, Samsung, Broadcom, AT91, ep93xx, and OMAP1"

* tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits)
  dt-bindings: soc: samsung: exynos-pmu: allow phys as child
  ARM: imx: mach-imx6ul: add imx6ulz support
  ARM: imx: Call ida_simple_remove() for ida_simple_get
  arm64: drop redundant "ARMv8" from Kconfig option title
  ARM: ep93xx: Convert to use descriptors for GPIO LEDs
  ARM: s3c: fix s3c64xx_set_timer_source prototype
  ARM: OMAP2+: Fix spelling typos in comment
  ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/machine.h>
  ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/pinmux.h>
  ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init()
  ARM: BCM63xx: remove useless goto statement
  ARM: omap2: make functions static
  ARM: omap2: remove unused omap2_pm_init
  ARM: omap2: remove unused declarations
  ARM: omap2: remove unused functions
  ARM: omap2: smartreflex: remove on_init control
  ARM: omap2: remove APLL control
  ARM: omap2: simplify clock2xxx header
  ARM: omap2: remove unused omap_hwmod_reset.c
  ARM: omap2: remove unused headers
  ...
2023-02-20 15:36:37 -08:00
Mark Rutland
d54170812e arm64: fix .idmap.text assertion for large kernels
When building a kernel with many debug options enabled (which happens in
test configurations use by myself and syzbot), the kernel can become
large enough that portions of .text can be more than 128M away from
.idmap.text (which is placed inside the .rodata section). Where idmap
code branches into .text, the linker will place veneers in the
.idmap.text section to make those branches possible.

Unfortunately, as Ard reports, GNU LD has bseen observed to add 4K of
padding when adding such veneers, e.g.

| .idmap.text    0xffffffc01e48e5c0      0x32c arch/arm64/mm/proc.o
|                0xffffffc01e48e5c0                idmap_cpu_replace_ttbr1
|                0xffffffc01e48e600                idmap_kpti_install_ng_mappings
|                0xffffffc01e48e800                __cpu_setup
| *fill*         0xffffffc01e48e8ec        0x4
| .idmap.text.stub
|                0xffffffc01e48e8f0       0x18 linker stubs
|                0xffffffc01e48f8f0                __idmap_text_end = .
|                0xffffffc01e48f000                . = ALIGN (0x1000)
| *fill*         0xffffffc01e48f8f0      0x710
|                0xffffffc01e490000                idmap_pg_dir = .

This makes the __idmap_text_start .. __idmap_text_end region bigger than
the 4K we require it to fit within, and triggers an assertion in arm64's
vmlinux.lds.S, which breaks the build:

| LD      .tmp_vmlinux.kallsyms1
| aarch64-linux-gnu-ld: ID map text too big or misaligned
| make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Error 1
| make: *** [Makefile:1264: vmlinux] Error 2

Avoid this by using an `ADRP+ADD+BLR` sequence for branches out of
.idmap.text, which avoids the need for veneers. These branches are only
executed once per boot, and only when the MMU is on, so there should be
no noticeable performance penalty in replacing `BL` with `ADRP+ADD+BLR`.

At the same time, remove the "x" and "w" attributes when placing code in
.idmap.text, as these are not necessary, and this will prevent the
linker from assuming that it is safe to place PLTs into .idmap.text,
causing it to warn if and when there are out-of-range branches within
.idmap.text, e.g.

|   LD      .tmp_vmlinux.kallsyms1
| arch/arm64/kernel/head.o: in function `primary_entry':
| (.idmap.text+0x1c): relocation truncated to fit: R_AARCH64_CALL26 against symbol `dcache_clean_poc' defined in .text section in arch/arm64/mm/cache.o
| arch/arm64/kernel/head.o: in function `init_el2':
| (.idmap.text+0x88): relocation truncated to fit: R_AARCH64_CALL26 against symbol `dcache_clean_poc' defined in .text section in arch/arm64/mm/cache.o
| make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1
| make: *** [Makefile:1252: vmlinux] Error 2

Thus, if future changes add out-of-range branches in .idmap.text, it
should be easy enough to identify those from the resulting linker
errors.

Reported-by: syzbot+f8ac312e31226e23302b@syzkaller.appspotmail.com
Link: https://lore.kernel.org/linux-arm-kernel/00000000000028ea4105f4e2ef54@google.com/
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Will Deacon <will@kernel.org>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20230220162317.1581208-1-mark.rutland@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-20 18:23:35 +00:00
Paolo Bonzini
4090871d77 KVM/arm64 updates for 6.3
- Provide a virtual cache topology to the guest to avoid
    inconsistencies with migration on heterogenous systems. Non secure
    software has no practical need to traverse the caches by set/way in
    the first place.
 
  - Add support for taking stage-2 access faults in parallel. This was an
    accidental omission in the original parallel faults implementation,
    but should provide a marginal improvement to machines w/o FEAT_HAFDBS
    (such as hardware from the fruit company).
 
  - A preamble to adding support for nested virtualization to KVM,
    including vEL2 register state, rudimentary nested exception handling
    and masking unsupported features for nested guests.
 
  - Fixes to the PSCI relay that avoid an unexpected host SVE trap when
    resuming a CPU when running pKVM.
 
  - VGIC maintenance interrupt support for the AIC
 
  - Improvements to the arch timer emulation, primarily aimed at reducing
    the trap overhead of running nested.
 
  - Add CONFIG_USERFAULTFD to the KVM selftests config fragment in the
    interest of CI systems.
 
  - Avoid VM-wide stop-the-world operations when a vCPU accesses its own
    redistributor.
 
  - Serialize when toggling CPACR_EL1.SMEN to avoid unexpected exceptions
    in the host.
 
  - Aesthetic and comment/kerneldoc fixes
 
  - Drop the vestiges of the old Columbia mailing list and add myself as
    co-maintainer
 
 This also drags in a couple of branches to avoid conflicts:
 
  - The shared 'kvm-hw-enable-refactor' branch that reworks
    initialization, as it conflicted with the virtual cache topology
    changes.
 
  - arm64's 'for-next/sme2' branch, as the PSCI relay changes, as both
    touched the EL2 initialization code.
 -----BEGIN PGP SIGNATURE-----
 
 iQJDBAABCgAtFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAmPw29cPHG1hekBrZXJu
 ZWwub3JnAAoJECPQ0LrRPXpD9doQAIJyMW0odT6JBe15uGCxTuTnJbb8mniajJdX
 CuSxPl85WyKLtZbIJLRTQgyt6Nzbu0N38zM0y/qBZT5BvAnWYI8etvnJhYZjooAy
 jrf0Me/GM5hnORXN+1dByCmlV+DSuBkax86tgIC7HhU71a2SWpjlmWQi/mYvQmIK
 PBAqpFF+w2cWHi0ZvCq96c5EXBdN4FLEA5cdZhekCbgw1oX8+x+HxdpBuGW5lTEr
 9oWOzOzJQC1uFnjP3unFuIaG94QIo+NA4aGLMzfb7wm2wdQUnKebtdj/RxsDZOKe
 43Q1+MDFWMsxxFu4FULH8fPMwidIm5rfz3pw3JJloqaZp8vk/vjDLID7AYucMIX8
 1G/mjqz6E9lYvv57WBmBhT/+apSDAmeHlAT97piH73Nemga91esDKuHSdtA8uB5j
 mmzcUYajuB2GH9rsaXJhVKt/HW7l9fbGliCkI99ckq/oOTO9VsKLsnwS/rMRIsPn
 y2Y8Lyoe4eqokd1DNn5/bo+3qDnfmzm6iDmZOo+JYuJv9KS95zuw17Wu7la9UAPV
 e13+btoijHDvu8RnTecuXljWfAAKVtEjpEIoS5aP2R2iDvhr0d8POlMPaJ40YuRq
 D2fKr18b6ngt+aI0TY63/ksEIFexx67HuwQsUZ2lRjyjq5/x+u3YIqUPbKrU4Rnl
 uxXjSvyr
 =r4s/
 -----END PGP SIGNATURE-----

Merge tag 'kvmarm-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD

KVM/arm64 updates for 6.3

 - Provide a virtual cache topology to the guest to avoid
   inconsistencies with migration on heterogenous systems. Non secure
   software has no practical need to traverse the caches by set/way in
   the first place.

 - Add support for taking stage-2 access faults in parallel. This was an
   accidental omission in the original parallel faults implementation,
   but should provide a marginal improvement to machines w/o FEAT_HAFDBS
   (such as hardware from the fruit company).

 - A preamble to adding support for nested virtualization to KVM,
   including vEL2 register state, rudimentary nested exception handling
   and masking unsupported features for nested guests.

 - Fixes to the PSCI relay that avoid an unexpected host SVE trap when
   resuming a CPU when running pKVM.

 - VGIC maintenance interrupt support for the AIC

 - Improvements to the arch timer emulation, primarily aimed at reducing
   the trap overhead of running nested.

 - Add CONFIG_USERFAULTFD to the KVM selftests config fragment in the
   interest of CI systems.

 - Avoid VM-wide stop-the-world operations when a vCPU accesses its own
   redistributor.

 - Serialize when toggling CPACR_EL1.SMEN to avoid unexpected exceptions
   in the host.

 - Aesthetic and comment/kerneldoc fixes

 - Drop the vestiges of the old Columbia mailing list and add [Oliver]
   as co-maintainer

This also drags in arm64's 'for-next/sme2' branch, because both it and
the PSCI relay changes touch the EL2 initialization code.
2023-02-20 06:12:42 -05:00
Pierre Gondois
0e68b5517d arm64: efi: Make efi_rt_lock a raw_spinlock
Running a rt-kernel base on 6.2.0-rc3-rt1 on an Ampere Altra outputs
the following:
  BUG: sleeping function called from invalid context at kernel/locking/spinlock_rt.c:46
  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 9, name: kworker/u320:0
  preempt_count: 2, expected: 0
  RCU nest depth: 0, expected: 0
  3 locks held by kworker/u320:0/9:
  #0: ffff3fff8c27d128 ((wq_completion)efi_rts_wq){+.+.}-{0:0}, at: process_one_work (./include/linux/atomic/atomic-long.h:41)
  #1: ffff80000861bdd0 ((work_completion)(&efi_rts_work.work)){+.+.}-{0:0}, at: process_one_work (./include/linux/atomic/atomic-long.h:41)
  #2: ffffdf7e1ed3e460 (efi_rt_lock){+.+.}-{3:3}, at: efi_call_rts (drivers/firmware/efi/runtime-wrappers.c:101)
  Preemption disabled at:
  efi_virtmap_load (./arch/arm64/include/asm/mmu_context.h:248)
  CPU: 0 PID: 9 Comm: kworker/u320:0 Tainted: G        W          6.2.0-rc3-rt1
  Hardware name: WIWYNN Mt.Jade Server System B81.03001.0005/Mt.Jade Motherboard, BIOS 1.08.20220218 (SCP: 1.08.20220218) 2022/02/18
  Workqueue: efi_rts_wq efi_call_rts
  Call trace:
  dump_backtrace (arch/arm64/kernel/stacktrace.c:158)
  show_stack (arch/arm64/kernel/stacktrace.c:165)
  dump_stack_lvl (lib/dump_stack.c:107 (discriminator 4))
  dump_stack (lib/dump_stack.c:114)
  __might_resched (kernel/sched/core.c:10134)
  rt_spin_lock (kernel/locking/rtmutex.c:1769 (discriminator 4))
  efi_call_rts (drivers/firmware/efi/runtime-wrappers.c:101)
  [...]

This seems to come from commit ff7a167961 ("arm64: efi: Execute
runtime services from a dedicated stack") which adds a spinlock. This
spinlock is taken through:
efi_call_rts()
\-efi_call_virt()
  \-efi_call_virt_pointer()
    \-arch_efi_call_virt_setup()

Make 'efi_rt_lock' a raw_spinlock to avoid being preempted.

[ardb: The EFI runtime services are called with a different set of
       translation tables, and are permitted to use the SIMD registers.
       The context switch code preserves/restores neither, and so EFI
       calls must be made with preemption disabled, rather than only
       disabling migration.]

Fixes: ff7a167961 ("arm64: efi: Execute runtime services from a dedicated stack")
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
Cc: <stable@vger.kernel.org> # v6.1+
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2023-02-19 14:40:35 +01:00
Linus Torvalds
0c2822b116 arm64 regression fix for 6.2
- Fix 'perf' regression for non-standard CPU PMU hardware (i.e. Apple M1)
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCgAuFiEEPxTL6PPUbjXGY88ct6xw3ITBYzQFAmPvVyAQHHdpbGxAa2Vy
 bmVsLm9yZwAKCRC3rHDchMFjNEwzCACuxJI7xVvcjLktrcmdajkNH+j8Owvrpfq+
 8Uja4ykbNJr9BIsZFcI9b7Y2vH7k4+noYDozPKvBgKlSYJVyUUsK2QoJNLzPflc2
 RJDPjaM8KrBBE5OTgR5Pvbda+QJ2x5GQGmI1IZv//KVnRUoLTOAje9th4Yza+/oV
 5y4THZjHlCeHpsfaVWNiVPqoodQw7Su++kXLABgBZrnRuBwg1lHUQp60cLdTx3lE
 M4xgvB9MD1+QDFOgtP97AzegT7F251QFnr3JuBj9gtARX8qv2v/REBG/DRsgcPAm
 piJ8pXaVuNf1rkznRlhiCtI5hhP+OIyySugDxzisBDUXfZ8AJOsv
 =4A3e
 -----END PGP SIGNATURE-----

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 regression fix from Will Deacon:
 "Apologies for the _extremely_ late pull request here, but we had a
  'perf' (i.e. CPU PMU) regression on the Apple M1 reported on Wednesday
  [1] which was introduced by bd27568117 ("perf: Rewrite core context
  handling") during the merge window.

  Mark and I looked into this and noticed an additional problem caused
  by the same patch, where the 'CHAIN' event (used to combine two
  adjacent 32-bit counters into a single 64-bit counter) was not being
  filtered correctly. Mark posted a series on Thursday [2] which
  addresses both of these regressions and I queued it the same day.

  The changes are small, self-contained and have been confirmed to fix
  the original regression.

  Summary:

   - Fix 'perf' regression for non-standard CPU PMU hardware (i.e. Apple
     M1)"

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: perf: reject CHAIN events at creation time
  arm_pmu: fix event CPU filtering
2023-02-18 10:10:49 -08:00
David S. Miller
675f176b4d Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net
Some of the devlink bits were tricky, but I think I got it right.

Signed-off-by: David S. Miller <davem@davemloft.net>
2023-02-17 11:06:39 +00:00
Mark Rutland
853e2dac25 arm64: perf: reject CHAIN events at creation time
Currently it's possible for a user to open CHAIN events arbitrarily,
which we previously tried to rule out in commit:

  ca2b497253 ("arm64: perf: Reject stand-alone CHAIN events for PMUv3")

Which allowed the events to be opened, but prevented them from being
scheduled by by using an arm_pmu::filter_match hook to reject the
relevant events.

The CHAIN event filtering in the arm_pmu::filter_match hook was silently
removed in commit:

  bd27568117 ("perf: Rewrite core context handling")

As a result, it's now possible for users to open CHAIN events, and for
these to be installed arbitrarily.

Fix this by rejecting CHAIN events at creation time. This avoids the
creation of events which will never count, and doesn't require using the
dynamic filtering.

Attempting to open a CHAIN event (0x1e) will now be rejected:

| # ./perf stat -e armv8_pmuv3/config=0x1e/ ls
| perf
|
|  Performance counter stats for 'ls':
|
|    <not supported>      armv8_pmuv3/config=0x1e/
|
|        0.002197470 seconds time elapsed
|
|        0.000000000 seconds user
|        0.002294000 seconds sys

Other events (e.g. CPU_CYCLES / 0x11) will open as usual:

| # ./perf stat -e armv8_pmuv3/config=0x11/ ls
| perf
|
|  Performance counter stats for 'ls':
|
|            2538761      armv8_pmuv3/config=0x11/
|
|        0.002227330 seconds time elapsed
|
|        0.002369000 seconds user
|        0.000000000 seconds sys

Fixes: bd27568117 ("perf: Rewrite core context handling")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20230216141240.3833272-3-mark.rutland@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2023-02-16 21:23:52 +00:00
Mark Rutland
61d0386273 arm_pmu: fix event CPU filtering
Janne reports that perf has been broken on Apple M1 as of commit:

  bd27568117 ("perf: Rewrite core context handling")

That commit replaced the pmu::filter_match() callback with
pmu::filter(), whose return value has the opposite polarity, with true
implying events should be ignored rather than scheduled. While an
attempt was made to update the logic in armv8pmu_filter() and
armpmu_filter() accordingly, the return value remains inverted in a
couple of cases:

* If the arm_pmu does not have an arm_pmu::filter() callback,
  armpmu_filter() will always return whether the CPU is supported rather
  than whether the CPU is not supported.

  As a result, the perf core will not schedule events on supported CPUs,
  resulting in a loss of events. Additionally, the perf core will
  attempt to schedule events on unsupported CPUs, but this will be
  rejected by armpmu_add(), which may result in a loss of events from
  other PMUs on those unsupported CPUs.

* If the arm_pmu does have an arm_pmu::filter() callback, and
  armpmu_filter() is called on a CPU which is not supported by the
  arm_pmu, armpmu_filter() will return false rather than true.

  As a result, the perf core will attempt to schedule events on
  unsupported CPUs, but this will be rejected by armpmu_add(), which may
  result in a loss of events from other PMUs on those unsupported CPUs.

This means a loss of events can be seen with any arm_pmu driver, but
with the ARMv8 PMUv3 driver (which is the only arm_pmu driver with an
arm_pmu::filter() callback) the event loss will be more limited and may
go unnoticed, which is how this issue evaded testing so far.

Fix the CPU filtering by performing this consistently in
armpmu_filter(), and remove the redundant arm_pmu::filter() callback and
armv8pmu_filter() implementation.

Commit bd27568117 also silently removed the CHAIN event filtering from
armv8pmu_filter(), which will be addressed by a separate patch without
using the filter callback.

Fixes: bd27568117 ("perf: Rewrite core context handling")
Reported-by: Janne Grunau <j@jannau.net>
Link: https://lore.kernel.org/asahi/20230215-arm_pmu_m1_regression-v1-1-f5a266577c8d@jannau.net/
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Asahi Lina <lina@asahilina.net>
Cc: Eric Curtin <ecurtin@redhat.com>
Tested-by: Janne Grunau <j@jannau.net>
Link: https://lore.kernel.org/r/20230216141240.3833272-2-mark.rutland@arm.com
Signed-off-by: Will Deacon <will@kernel.org>
2023-02-16 21:23:52 +00:00
Paolo Bonzini
33436335e9 KVM/riscv changes for 6.3
- Fix wrong usage of PGDIR_SIZE to check page sizes
 - Fix privilege mode setting in kvm_riscv_vcpu_trap_redirect()
 - Redirect illegal instruction traps to guest
 - SBI PMU support for guest
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEZdn75s5e6LHDQ+f/rUjsVaLHLAcFAmPifFIACgkQrUjsVaLH
 LAcEyxAAinMBaBhiPmwWZQvcCzh/UFmJo8BQCwAPuwoc/a4ZGAR7ylzd0oJilP8M
 wSgX6Ad8XF+CEW2VpxW9nwyi41N25ep1Lrf8vOaWy9L9QNUo0t15WrCIbXT2p399
 HrK9fz7HHKKIMsJy+rYb9EepdmMf55xtr1Y/EjyvhoDQbrEMlKsAODYz/SUoriQG
 Tn3cCYBzLdvzDzu0xXM9v+nsetWXdajK/v4je+mE3NQceXhePAO4oVWP4IpnoROd
 ZQm3evvVdf0WtKG9curxwMB7jjBqDBFrcLYl0qHGa7pi2o5PzVM7esgaV47KwetH
 IgA/Mrf1IfzpgM7VYDDax5wUHlKj63KisqU0J8rU3PUloQXaWqv7+ho51t9GzZ/i
 9x4uyO/evVntgyTw6HCbqmQJDgEtJiG1ydrR/ydBMYHLnh7LPY2UpKgcqmirtbkK
 1/DYDp84vikQ5VW1hc8IACdoBShh9Moh4xsEStzkTrIeHcZCjtORXUh8UIPZ0Mu2
 7Mnkktu9I55SLwA3rwH/EYT1ISrOV1G+q3wfqgeLpn8YUWwCIiqWQ5Ur0/WSMJse
 uJ3HedZDzj9T4n4khX+mKEYh6joAafQZag+4TID2lRSwd0S/mpeC22hYrViMdDmq
 yhE+JNin/sz4AVaHNzGwfqk2NC2RFl9aRn2X0xTwyBubif9pKMQ=
 =spUL
 -----END PGP SIGNATURE-----

Merge tag 'kvm-riscv-6.3-1' of https://github.com/kvm-riscv/linux into HEAD

KVM/riscv changes for 6.3

- Fix wrong usage of PGDIR_SIZE to check page sizes
- Fix privilege mode setting in kvm_riscv_vcpu_trap_redirect()
- Redirect illegal instruction traps to guest
- SBI PMU support for guest
2023-02-15 12:33:28 -05:00
Arnd Bergmann
af16544d4a Few more Qualcomm ARM64 defconfig updates for v6.3
This enables the drivers needed to support USB Type-C based external
 display on the SC8280XP laptops. It also enables a couple of core
 drivers for the Qualcomm SA8775P platform.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmPsauoVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FrHsP+gJStMfJQTK090A4Q2SaUk5Q/pTt
 OCiCQxICK1RiJ2qhnVrnOANJZ+AS9Tqu043ZuQ8/cI5DsNbgo/XSpANuxk5GrtCB
 uf7X8z288oMkmuZWo2MeCIVAQ/suHHDFgzmRd+JTzthESLfKxIQvPGx/cKELHcOu
 0XCeukpb0p0dxyfne9M0q8mMlldISzTFJ8v13p6id2pyBRIvVmntvZRzCPSxthKQ
 dEcpqt7PBwaHEExPluKXvOnLHbddG6UEEtOlUEl85CKwPElEfYhgIcTD83fv3nuq
 oOnaqdKXmDaglJ3sI6ihYFyLRZ6oui9W8sigE8iIVeJjEY+ItiNmQutEAabbgVCQ
 Pi+vNF8eWMwm/ZPUB3XdQX3hzzG0w/ZCrMmb7oVRpwxS/PwAjYgBHSD5GXZPB5d6
 UqjpfxfUHhczdUbEaHfKq0Dyo4sRkH5N1dOLDy6y5+O9kwcc+YJ5w9jFp1/+clU2
 0F6LviWo4nxS4WKvl2JCO7Z3dNqIK37NsMAEwy3LvigKK1PXugPrjQkxfkvdbwgD
 MS1B8aPvA7z58pX6I2o5T6LMYSItVNKbOhv/hQzsL1qAaVjnbnX/7oDkTaMwy60m
 HHsO0VAuLR5Fk5rSVnthZaD+aXEZclPuzyD7sHQJDd6T2bHGCSi5LINvT6bNZBR+
 RGDUbJGIAtXo0LBf
 =vi5s
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPs5sEACgkQmmx57+YA
 GNmpSA/8DdFQGkhnNgHklMBPrdS+cBJJEFZMPNuVSUG5RGZ944bjDtXzO9TmpL9X
 PNAbM/hw2SwpuQG5+/bWOig/oghNJuvFe2fcgD3N3NbsP1yjSV9jECbkwav6qZLt
 lHVsqop/u3zEKrySBJVpT69DlKMVNc8V4UNNO3Ob5y//h+a1jhTGYXysIaKP1t5S
 NYp/2EPexVc1HO6/ONbqr+v7qmQXVTy0/IbppRAmA3nyqFHkj76Vxn3LKPRClOOx
 Z1drLX2BVaLSCtveJAG+iUOMdk2alw2NV6mHg7pI33bqzYKMQwt9oPX6GS6WJHMx
 axcb3ZiCbBwV0Q3JUl0gYJvv5SvODQLERfLP9H2h5NjBbiI8ywHAzBH8BBuNei4e
 DAaGUG1/IJVYZR67/5eKK7bxli10sLWhZdedCeczc4I6+4gEu//lZxPMCxonVGDv
 YCGVF2ylg4gr8qKw1XcHjZ86BmuEmaoccvaJH0bWpoeHxAgO1AwHAQX1yC4dCuTJ
 86q0O+SCZR4rt92TtK7br3XM2O9EBO8/X6ey/pQ4zWLFAsfZBRoANxwEAn75JISt
 5OPcqLtcL49tYZDaEVxpYT+RR/ZKIMNzmxVztu3OtXU7u9K3pd0HSV1A7XOaBTRp
 i44MspXQvPJQhO154HteAPEWgF198FAU1YjXUGpLMelJNOgQSYY=
 =ppMB
 -----END PGP SIGNATURE-----

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

Few more Qualcomm ARM64 defconfig updates for v6.3

This enables the drivers needed to support USB Type-C based external
display on the SC8280XP laptops. It also enables a couple of core
drivers for the Qualcomm SA8775P platform.

* tag 'qcom-arm64-defconfig-for-6.3-3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: enable drivers required by the Qualcomm SA8775P platform
  arm64: defconfig: Enable DisplayPort on SC8280XP laptops

Link: https://lore.kernel.org/r/20230215051757.1166709-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-15 15:05:53 +01:00
Arnd Bergmann
18b68c695c Last set of Qualcomm ARM64 DTS updates for v6.3
This introduces additional DisplayPort controllers and pmic_glink on
 SC8280XP (8cx Gen3), which provides support for USB Type-C-based
 displays on the the Lenovo ThinkPad X13s and the compute reference
 device. The pmic_glink also provides battery and power supply status.
 
 Interrupt-parents are corrected across the SC8280XP PMICs, to allow
 non-Linux OSs to properly handle interrupts in the various blocks
 therein.
 
 It cleans up the SM8350 base dtsi and introduces GPU support on this
 platform, as well as enable this for the Hardware Development Kit (HDK).
 It enables i2c busses on the Fairphone FP4
 
 Lastly it aligns glink node names with bindings across a few platforms,
 and corrects the compatible for the PON block in the pmk8350 PMIC.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmPsajkVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FWTkQANXEeXPZTwcFCRx3r9YENNP8UmQr
 pVK5wmd3Mtj7XbxvejmE+C/z1fdWHywjMgTLRqCLaRVPm6JF1bNxfizzJSI7lYWB
 tWKoYlSgFea4nfJoBI92Bj663TRjmKGGqjWmRh5+P6legEmFXVSoBFNJ7x0bJAeC
 Vv4zpd51chPZKZVstlxfyI5vSwmfpC8lof2G+peEIxTBbxlC1qR+Pf3qcoKdEBTm
 IWY2/UHDyJk1Ni2IPMekdj+ZJrCtD3l8Gu8j1C2qs6pFihpMmNYbpCPAZMeMbId1
 qELRrHicDtfVrNTytSQ2sRxJtTviqk8cC6FobiXo/w6wwexldTnxI2+Xb3i9Dg7l
 yzTJRPb143W3VjwsyDpqPbOvR+rXUqdmFlDcvjdRCwOyrjdgJuqXgI0HzLUQ2aqc
 4+5AtjcPiWyTZfQ2A1u2wnHiHv5JyxIm7Xzqd0WEv3u+p1BvS4q2V6QuUh42pgyY
 po8oKxTPHHIDueog99rQNu2pNu+CDNnaJSQH8Pc9/52/upF6Vy49CmBhTkZEv55z
 DsAEpvS+ngvB8y1bbrnhyuNzPoHazIyMY+R4ibgew6Edh5MW8xaHERSN6+QK6DWq
 RSA8GIK8iX2gl4s3wM+xSBhAbvpbSPVnpnbXDasctesfL1w7JlCOwEWS6YxzwFTV
 KOh/jGgHLHo8HF64
 =X4Uq
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPs5fIACgkQmmx57+YA
 GNnGiw//Zli8PFGC9a9stJ3TkxhGRinwVgtFyHHWVZDRjdX0kHtfPsFBqPEe4Fzx
 hLxhgGvm1sKUP6Vsr9I+7dpnLgYZCwiIF7GcpT4joJfxigu9G1qXxHiB5RDpjGfs
 bS/czJOPAOfqeO/DItc9Cv6oUniiawBv2RINMTE1VlIk8Ml9zCIiA26cRJYy4Za5
 XZi2cIINoDiDUq/odTXQkGhHHEW+tKAL/66wkG4n03QyYoZyUq3UHin8jfg4T5ql
 mSZ972MRsn6rrrYjabgxTvpqnntqRPzx0wgr4m2GbdFU26S/UpndAmQYe4YrvE/b
 AvwGtoLiJmb13ziwa1WUnfYhY/F1SKx5S3NzvCdKN7vPWx9az5es4HVspNdjuILF
 0OeXyBYMl5U8Pi/nFYPUnNFttLWHFinWW9TzUcS2xbvePHTTScKto3dz1mpiJNqN
 4rOllLRwvM5Xsq+Y+oiKp/kIc7RhhRdbBcNYYQB/9W2qRfUwQTtfCVv/3IymSgyB
 7kKWu/+CIDI7P/OqFkaW813wCnf4/jSpRjhwuh6E0zOkADFSKDVfu0eQMxs20Tt6
 /dGN4JfVGHYed4FJhuHwDv96xJEdVxToUiacc42xYyfKlVDuwhauSmwKD7tgGMZj
 bp4AoaY96C0JH1FWyKYJwZYU6iXnM3UJ+wxPM+nYX7/FhV/ToFw=
 =hZcb
 -----END PGP SIGNATURE-----

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

Last set of Qualcomm ARM64 DTS updates for v6.3

This introduces additional DisplayPort controllers and pmic_glink on
SC8280XP (8cx Gen3), which provides support for USB Type-C-based
displays on the the Lenovo ThinkPad X13s and the compute reference
device. The pmic_glink also provides battery and power supply status.

Interrupt-parents are corrected across the SC8280XP PMICs, to allow
non-Linux OSs to properly handle interrupts in the various blocks
therein.

It cleans up the SM8350 base dtsi and introduces GPU support on this
platform, as well as enable this for the Hardware Development Kit (HDK).
It enables i2c busses on the Fairphone FP4

Lastly it aligns glink node names with bindings across a few platforms,
and corrects the compatible for the PON block in the pmk8350 PMIC.

* tag 'qcom-arm64-for-6.3-3' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: dts: qcom: msm8996: align RPM G-Link clock-controller node with bindings
  arm64: dts: qcom: qcs404: align RPM G-Link node with bindings
  arm64: dts: qcom: ipq6018: align RPM G-Link node with bindings
  arm64: dts: qcom: sm8550: remove invalid interconnect property from cryptobam
  arm64: dts: qcom: sc7280: Adjust zombie PWM frequency
  arm64: dts: qcom: sc8280xp-pmics: Specify interrupt parent explicitly
  arm64: dts: qcom: sm7225-fairphone-fp4: enable remaining i2c busses
  arm64: dts: qcom: sm7225-fairphone-fp4: move status property down
  arm64: dts: qcom: pmk8350: Use the correct PON compatible
  arm64: dts: qcom: sc8280xp-x13s: Enable external display
  arm64: dts: qcom: sc8280xp-crd: Introduce pmic_glink
  arm64: dts: qcom: sc8280xp: Add USB-C-related DP blocks
  arm64: dts: qcom: sm8350-hdk: enable GPU
  arm64: dts: qcom: sm8350: add GPU, GMU, GPU CC and SMMU nodes
  arm64: dts: qcom: sm8350: finish reordering nodes
  arm64: dts: qcom: sm8350: move more nodes to correct place
  arm64: dts: qcom: sm8350: reorder device nodes

Link: https://lore.kernel.org/r/20230215051530.1165953-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-15 15:02:26 +01:00
Greg Kroah-Hartman
c4a07e264d Merge 6.2-rc8 into usb-next
We need the USB fixes in here for testing.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-14 13:44:08 +01:00
Oliver Upton
0d3b2b4d23 Merge branch kvm-arm64/nv-prefix into kvmarm/next
* kvm-arm64/nv-prefix:
  : Preamble to NV support, courtesy of Marc Zyngier.
  :
  : This brings in a set of prerequisite patches for supporting nested
  : virtualization in KVM/arm64. Of course, there is a long way to go until
  : NV is actually enabled in KVM.
  :
  :  - Introduce cpucap / vCPU feature flag to pivot the NV code on
  :
  :  - Add support for EL2 vCPU register state
  :
  :  - Basic nested exception handling
  :
  :  - Hide unsupported features from the ID registers for NV-capable VMs
  KVM: arm64: nv: Use reg_to_encoding() to get sysreg ID
  KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changes
  KVM: arm64: nv: Filter out unsupported features from ID regs
  KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2
  KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
  KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
  KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2
  KVM: arm64: nv: Handle SMCs taken from virtual EL2
  KVM: arm64: nv: Handle trapped ERET from virtual EL2
  KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
  KVM: arm64: nv: Support virtual EL2 exceptions
  KVM: arm64: nv: Handle HCR_EL2.NV system register traps
  KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
  KVM: arm64: nv: Add EL2 system registers to vcpu context
  KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
  KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
  KVM: arm64: nv: Introduce nested virtualization VCPU feature
  KVM: arm64: Use the S2 MMU context to iterate over S2 table
  arm64: Add ARM64_HAS_NESTED_VIRT cpufeature

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 23:33:41 +00:00
Oliver Upton
022d3f0800 Merge branch kvm-arm64/misc into kvmarm/next
* kvm-arm64/misc:
  : Miscellaneous updates
  :
  :  - Convert CPACR_EL1_TTA to the new, generated system register
  :    definitions.
  :
  :  - Serialize toggling CPACR_EL1.SMEN to avoid unexpected exceptions when
  :    accessing SVCR in the host.
  :
  :  - Avoid quiescing the guest if a vCPU accesses its own redistributor's
  :    SGIs/PPIs, eliminating the need to IPI. Largely an optimization for
  :    nested virtualization, as the L1 accesses the affected registers
  :    rather often.
  :
  :  - Conversion to kstrtobool()
  :
  :  - Common definition of INVALID_GPA across architectures
  :
  :  - Enable CONFIG_USERFAULTFD for CI runs of KVM selftests
  KVM: arm64: Fix non-kerneldoc comments
  KVM: selftests: Enable USERFAULTFD
  KVM: selftests: Remove redundant setbuf()
  arm64/sysreg: clean up some inconsistent indenting
  KVM: MMU: Make the definition of 'INVALID_GPA' common
  KVM: arm64: vgic-v3: Use kstrtobool() instead of strtobool()
  KVM: arm64: vgic-v3: Limit IPI-ing when accessing GICR_{C,S}ACTIVER0
  KVM: arm64: Synchronize SMEN on vcpu schedule out
  KVM: arm64: Kill CPACR_EL1_TTA definition

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 23:33:25 +00:00
Oliver Upton
e4f7417e96 Merge branch kvm-arm64/apple-vgic-mi into kvmarm/next
* kvm-arm64/apple-vgic-mi:
  : VGIC maintenance interrupt support for the AIC, courtesy of Marc Zyngier.
  :
  : The AIC provides a non-maskable VGIC maintenance interrupt, which until
  : now was not supported by KVM. This series (1) allows the registration of
  : a non-maskable maintenance interrupt and (2) wires in support for this
  : with the AIC driver.
  irqchip/apple-aic: Correctly map the vgic maintenance interrupt
  irqchip/apple-aic: Register vgic maintenance interrupt with KVM
  KVM: arm64: vgic: Allow registration of a non-maskable maintenance interrupt

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 23:31:23 +00:00
Oliver Upton
3f1a14af5e Merge branch kvm-arm64/psci-relay-fixes into kvmarm/next
* kvm-arm64/psci-relay-fixes:
  : Fixes for CPU on/resume with pKVM, courtesy Quentin Perret.
  :
  : A consequence of deprivileging the host is that pKVM relays PSCI calls
  : on behalf of the host. pKVM's CPU initialization failed to fully
  : initialize the CPU's EL2 state, which notably led to unexpected SVE
  : traps resulting in a hyp panic.
  :
  : The issue is addressed by reusing parts of __finalise_el2 to restore CPU
  : state in the PSCI relay.
  KVM: arm64: Finalise EL2 state from pKVM PSCI relay
  KVM: arm64: Use sanitized values in __check_override in nVHE
  KVM: arm64: Introduce finalise_el2_state macro
  KVM: arm64: Provide sanitized SYS_ID_AA64SMFR0_EL1 to nVHE
2023-02-13 23:30:37 +00:00
Oliver Upton
1b915210d9 Merge branch kvm-arm64/nv-timer-improvements into kvmarm/next
* kvm-arm64/nv-timer-improvements:
  : Timer emulation improvements, courtesy of Marc Zyngier.
  :
  :  - Avoid re-arming an hrtimer for a guest timer that is already pending
  :
  :  - Only reload the affected timer context when emulating a sysreg access
  :    instead of both the virtual/physical timers.
  KVM: arm64: timers: Don't BUG() on unhandled timer trap
  KVM: arm64: Reduce overhead of trapped timer sysreg accesses
  KVM: arm64: Don't arm a hrtimer for an already pending timer

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 23:26:21 +00:00
Oliver Upton
52b603628a Merge branch kvm-arm64/parallel-access-faults into kvmarm/next
* kvm-arm64/parallel-access-faults:
  : Parallel stage-2 access fault handling
  :
  : The parallel faults changes that went in to 6.2 covered most stage-2
  : aborts, with the exception of stage-2 access faults. Building on top of
  : the new infrastructure, this series adds support for handling access
  : faults (i.e. updating the access flag) in parallel.
  :
  : This is expected to provide a performance uplift for cores that do not
  : implement FEAT_HAFDBS, such as those from the fruit company.
  KVM: arm64: Condition HW AF updates on config option
  KVM: arm64: Handle access faults behind the read lock
  KVM: arm64: Don't serialize if the access flag isn't set
  KVM: arm64: Return EAGAIN for invalid PTE in attr walker
  KVM: arm64: Ignore EAGAIN for walks outside of a fault
  KVM: arm64: Use KVM's pte type/helpers in handle_access_fault()

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 22:33:10 +00:00
Oliver Upton
e8789ab704 Merge branch kvm-arm64/virtual-cache-geometry into kvmarm/next
* kvm-arm64/virtual-cache-geometry:
  : Virtualized cache geometry for KVM guests, courtesy of Akihiko Odaki.
  :
  : KVM/arm64 has always exposed the host cache geometry directly to the
  : guest, even though non-secure software should never perform CMOs by
  : Set/Way. This was slightly wrong, as the cache geometry was derived from
  : the PE on which the vCPU thread was running and not a sanitized value.
  :
  : All together this leads to issues migrating VMs on heterogeneous
  : systems, as the cache geometry saved/restored could be inconsistent.
  :
  : KVM/arm64 now presents 1 level of cache with 1 set and 1 way. The cache
  : geometry is entirely controlled by userspace, such that migrations from
  : older kernels continue to work.
  KVM: arm64: Mark some VM-scoped allocations as __GFP_ACCOUNT
  KVM: arm64: Normalize cache configuration
  KVM: arm64: Mask FEAT_CCIDX
  KVM: arm64: Always set HCR_TID2
  arm64/cache: Move CLIDR macro definitions
  arm64/sysreg: Add CCSIDR2_EL1
  arm64/sysreg: Convert CCSIDR_EL1 to automatic generation
  arm64: Allow the definition of UNKNOWN system register fields

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 22:32:40 +00:00
Oliver Upton
619cec0085 Merge branch arm64/for-next/sme2 into kvmarm/next
Merge the SME2 branch to fix up a rather annoying conflict due to the
EL2 finalization refactor.

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 22:30:17 +00:00
Oliver Upton
92425e058a Merge branch kvm/kvm-hw-enable-refactor into kvmarm/next
Merge the kvm_init() + hardware enable rework to avoid conflicts
with kvmarm.

Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-13 22:28:34 +00:00
Krzysztof Kozlowski
407ef897bd arm64: dts: qcom: msm8996: align RPM G-Link clock-controller node with bindings
qcom,rpmcc bindings expect RPM clock controller to be named generic
"clock-controller":

  rpm-glink: rpm-requests: 'qcom,rpmcc' does not match any of the regexes: '^regulators(-[01])?$', 'pinctrl-[0-9]+'

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230208101545.45711-3-krzysztof.kozlowski@linaro.org
2023-02-13 14:20:54 -08:00
Krzysztof Kozlowski
7bf30eb441 arm64: dts: qcom: qcs404: align RPM G-Link node with bindings
Bindings expect (and most of DTS use) the RPM G-Link node name to be
"rpm-requests".

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230208101545.45711-2-krzysztof.kozlowski@linaro.org
2023-02-13 14:20:54 -08:00
Krzysztof Kozlowski
679ee73bbe arm64: dts: qcom: ipq6018: align RPM G-Link node with bindings
Bindings expect (and most of DTS use) the RPM G-Link node name to be
"rpm-requests".

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230208101545.45711-1-krzysztof.kozlowski@linaro.org
2023-02-13 14:20:53 -08:00
Bartosz Golaszewski
687bcd03a0 arm64: defconfig: enable drivers required by the Qualcomm SA8775P platform
Enable the pinctrl, GCC clock and interconnect drivers in order to allow
booting SA8775P boards. The drivers need to be built-in for QUPv3 and
subsequently UART console to work.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Eric Chanudet <echanude@redhat.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209103531.469809-1-brgl@bgdev.pl
2023-02-13 14:20:27 -08:00
Neil Armstrong
26e95ff8a9 arm64: dts: qcom: sm8550: remove invalid interconnect property from cryptobam
The interconnect property is already present in the qce node, which
is the consumer of the cryptobam, so no need for an interconnect property
as documented by the bindings.

Fixes: 433477c3bf ("arm64: dts: qcom: sm8550: add QCrypto nodes")
Suggested-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209-topic-sm8550-upstream-cryptobam-remove-interconnect-v1-1-84587c7bad0f@linaro.org
2023-02-13 14:20:09 -08:00
Owen Yang
f15c1b1bd3 arm64: dts: qcom: sc7280: Adjust zombie PWM frequency
Tune the PWM to solve screen flashing issue and high frequency noise.
While at it, the comment for the PWM settings incorrectly said we were
using a 5kHz duty cycle. It should have said "period", not "duty cycle".
Correct this while updating the values.

Signed-off-by: Owen Yang <ecs.taipeikernel@gmail.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213105803.v2.1.I610cef0ead2d5df1f7bd18bc0e0ae040b03725d0@changeid
2023-02-13 14:18:37 -08:00
Manivannan Sadhasivam
2d5cab9232 arm64: dts: qcom: sc8280xp-pmics: Specify interrupt parent explicitly
Nodes like pwrkey, resin, iadc, adc-tm, temp-alarm which are the grand
children of spmi_bus node represent the interrupt generating devices but
don't have "interrupt-parent" property.

As per the devicetree spec v0.3, section 2.4:

"The physical wiring of an interrupt source to an interrupt controller is
represented in the devicetree with the interrupt-parent property. Nodes
that represent interrupt-generating devices contain an interrupt-parent
property which has a phandle value that points to the device to which the
device’s interrupts are routed, typically an interrupt controller. If an
interrupt-generating device does not have an interrupt-parent property,
its interrupt parent is assumed to be its devicetree parent."

This clearly says that if the "interrupt-parent" property is absent, then
the immediate devicetree parent will be assumed as the interrupt parent.
But the immediate parents of these nodes are not interrupt controllers
themselves.

This may lead to failure while wiring the interrupt for these nodes by an
operating system. But a few operating systems like Linux, workaround this
issue by walking up the parent nodes until it finds the "interrupt-cells"
property. Then the node that has the "interrupt-cells" property will be
used as the interrupt parent.

But this workaround is not as per the DT spec and is not being implemented
by other operating systems such as OpenBSD.

Hence, fix this issue by adding the "interrupts-extended" property that
explicitly specifies the spmi_bus node as the interrupt parent. Note that
the "interrupts-extended" property is chosen over "interrupt-parent" as it
allows specifying both interrupt parent phandle and interrupt specifiers in
a single property.

Reported-by: Patrick Wildt <patrick@blueri.se>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213090118.11527-1-manivannan.sadhasivam@linaro.org
2023-02-13 14:18:21 -08:00
Luca Weiss
574f2ffd45 arm64: dts: qcom: sm7225-fairphone-fp4: enable remaining i2c busses
Enable all i2c busses where something is connected on this phone. Add
comments as placeholders for which components are still missing.

Also enable gpi_dma and the other qupv3 for that.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213-fp4-more-i2c-v2-2-1c459c572f80@fairphone.com
2023-02-13 14:17:35 -08:00
Luca Weiss
65aedb0b48 arm64: dts: qcom: sm7225-fairphone-fp4: move status property down
Currently the dts contains a mix of status-as-first-property (old qcom
style) and status-as-last-property (new style).

Move all status properties down to the bottom once and for all so that
the style is consistent between different nodes.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213-fp4-more-i2c-v2-1-1c459c572f80@fairphone.com
2023-02-13 14:17:35 -08:00
Konrad Dybcio
c0ee8e0ba5 arm64: dts: qcom: pmk8350: Use the correct PON compatible
A special compatible was introduced for PMK8350 both in the driver and
the bindings to facilitate for 2 base registers (PBS & HLOS). Use it.

Fixes: b2de431360 ("arm64: dts: qcom: pmk8350: Add peripherals for pmk8350")
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213212930.2115182-1-konrad.dybcio@linaro.org
2023-02-13 14:16:53 -08:00
Bjorn Andersson
85d81e1586 arm64: defconfig: Enable DisplayPort on SC8280XP laptops
The QCOM_PMIC_GLINK implements the parts of a TCPM necessary for
negotiating DP altmode and the TYPEC_MUX_GPIO_SBU driver is used for
controlling connection and orientation switching of the SBU lanes in the
USB-C connector  Enable these to enable USB Type-C DisplayPort on
SC8280XP laptops.

Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213215619.1362566-5-quic_bjorande@quicinc.com
2023-02-13 14:15:32 -08:00
Bjorn Andersson
8fcff430fa arm64: dts: qcom: sc8280xp-x13s: Enable external display
Like on the CRD, add the necessary nodes to enable USB Type-C
altmode-based external display on the Lenovo ThinkPad X13s.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213215619.1362566-4-quic_bjorande@quicinc.com
2023-02-13 14:14:38 -08:00
Bjorn Andersson
bc9a747ae9 arm64: dts: qcom: sc8280xp-crd: Introduce pmic_glink
The SC8280XP CRD control over battery management and its two USB Type-C
port using pmic_glink and two GPIO-based SBU muxes.

Enable the two DisplayPort instances, GPIO SBU mux instance and
pmic_glink with the two connectors on the CRD.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213215619.1362566-3-quic_bjorande@quicinc.com
2023-02-13 14:14:38 -08:00
Bjorn Andersson
19d3bb9075 arm64: dts: qcom: sc8280xp: Add USB-C-related DP blocks
Add the two DisplayPort controllers that are attached to QMP phys for
providing display output on USB Type-C.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213215619.1362566-2-quic_bjorande@quicinc.com
2023-02-13 14:14:38 -08:00
Dmitry Baryshkov
a8ecd17bb6 arm64: dts: qcom: sm8350-hdk: enable GPU
Enable the GPU on the SM8350-HDK device. The ZAP shader is required for
the GPU to function properly.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209133839.762631-7-dmitry.baryshkov@linaro.org
2023-02-13 14:14:04 -08:00
Dmitry Baryshkov
54af0ceb75 arm64: dts: qcom: sm8350: add GPU, GMU, GPU CC and SMMU nodes
Add device nodes required to enable GPU on the SM8350 platform.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
[bjorn: Workaround for lacking RPMH_REGULATOR_LEVEL_LOW_SVS_L1 constant]
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209133839.762631-6-dmitry.baryshkov@linaro.org
2023-02-13 14:13:59 -08:00
Dmitry Baryshkov
51f83fbbf1 arm64: dts: qcom: sm8350: finish reordering nodes
Finish reordering DT nodes by their address. Move PDC, tsens, AOSS,
SRAM, SPMI and TLMM nodes to the proper position.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209133839.762631-5-dmitry.baryshkov@linaro.org
2023-02-13 14:04:47 -08:00
Dmitry Baryshkov
1417372f4f arm64: dts: qcom: sm8350: move more nodes to correct place
Continue ordering DT nodes by their address. Move RNG, UFS, system NoC
and SLPI nodes to the proper position.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209133839.762631-4-dmitry.baryshkov@linaro.org
2023-02-13 14:04:47 -08:00
Dmitry Baryshkov
f5f6bd5818 arm64: dts: qcom: sm8350: reorder device nodes
Somehow sm8350 got its device nodes not fully sorted. Start reordering
DT nodes by their address. Move apps SMMU, GIC, timer, apps RSC, cpufreq
ADSP and cDSP nodes to the end to the proper position at the end of
/soc/.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230209133839.762631-3-dmitry.baryshkov@linaro.org
2023-02-13 14:04:47 -08:00
Mark Brown
c6cd63f5af
arm64: configs: Add virtconfig
Provide a slimline configuration intended to be booted on virtual
machines, with the goal of providing a light configuration which will
boot on and enable features available in mach-virt.  This is defined in
terms of the standard defconfig, with an additional virt.config fragment
which disables options unneeded in a virtual configuration.

As a first step we just disable all the ARCH_ configuration options,
disabling the build of all the SoC specific drivers.  This results in a
kernel that builds about 25% faster in my testing, if this approach
works for people we can add further options.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230203-arm64-defconfigs-v1-3-cd0694a05f13@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-13 20:18:29 +01:00
Arnd Bergmann
384fcb0bd1 More ARM64 defconfig updates for v6.3
Here are two more defconfig updates for 6.3, enabling the SM8450 Display
 clock controller driver, as well as the SDAM driver, a driver exposing
 SRAM on newer Qualcomm PMICs to other devices.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmPmh2QVHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3F9JYQANvm0QB4Y27TQrDjBxMLSErDndsC
 NO5rsigdpcK0LyazVwumv6YZoz6EqNGGjL/ImZr67AWfkfsr3FKM9JvNNaagAACZ
 uviyZYddS3Dynd6iLrRFMnq5fXaqB+3w8jeL2Zwc4sEqXBugK/FKWiyz7fNI9SX6
 vy/fQdU7IZFZlBVKgCZ0/lxQWp6rLwR5O/1pVW9sCRkLgGSkt6XLfyZLXjPIc13B
 m7ifwdW5L+5QaV/gs5nvnjPXnwhdGFNETpBVLJ72xtZ+UUlB/mDiB8t+MJgLt/87
 e/VI+oWoCnn4KNz7czQQwIEi9wVTocyiQCxYiTZ2FCn5qVj6F56hBD1jKeXBAU/W
 5K3ClKl34jfSeG+bJfUvvmN6fBcJ+OOZ+sMzVtBRJ7kV5VArrJjjx3kdqBsDIgk8
 1YVxWp+V6ZuIn3XgD6WUphXVBCpH7lat4ogACEGoT0Xj/XwDzOlSxFedXtz3qzgu
 DCUuvIo/fzOug2uHtfr9PY+x/ic0SCAh/XJexWRDXkDz6YCGWox4RhCRTy0WSYy9
 3rsXEkKoN+Z7gLPH/55tLr1QhgZtSavrgS52odgU2yGlKgsUy+yHpalhtdwa2T+o
 FMcO1VkSgxNRC/Ya1QbHNTvbAL9gXnzC/DZDmW1UhAuzdrh5wSyK7tBXAa/vTbaI
 K5G1jwYLO6HSvvqz
 =b8rp
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPqT90ACgkQmmx57+YA
 GNkxNRAAgkG6Q9k076i8MBHc1sel9d6JPW2/4KUswouKmWqPEE9HfEE30j0mzwQn
 Cj0Cje26SD1nKLx5upDNQhrXbaQX7ZHb+8GgELmUo3A9mvttaNM5yABDrGz7b9r+
 MUZbAPeB6o82tlsPURKOhL4UPFLU2nAiAvFf8Qnd2+fLbXHmqVeZfZe6VldPKos9
 Zu9g1ZXuoW1RFh1WaSeoc40FtBOVi1IjJ1kYz3tWiZ4PJniD0pPFyL7HnRw180V8
 emImE7ZgsucstGkzrUOCFdILQ0lOWB8PoOR3DucbIk67M1R6BOYR0x0umj0AoTvj
 Qza2JzwqGkdWp58nZ/xFPAdJLyh7nAhg1Gvm5NP9U/3XMJ1LQ/+nKTX5y0zvFH4c
 7meZDuUlkVuYuUiFTsXUy47fUS1t4/p/BQNQnYs5xhg3iCRCapTmhIee1DBRbsvf
 esP3YRV7xZIJl3KsQfehoNf0krfOIlq2LAfEdF8oUBSOYMJAQnsgb2N2iZhBxq0W
 A5L2rM6s+DkiyuH5NU8ByRnHiBhhckvtbsY+qX3AS1uDW8eN0D6KSVm3w/Ed01hE
 EC17GxjI4lGtcClMAEsfZojVOBmePBGJNHbEsE21l+/NZNJquoaaMaE18Mo92TMq
 kInVx5JQ9nGWON6MXVB9zAysVIgiPk0qdMgi/w7Bjigu6d8vaQI=
 =QLZQ
 -----END PGP SIGNATURE-----

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

More ARM64 defconfig updates for v6.3

Here are two more defconfig updates for 6.3, enabling the SM8450 Display
clock controller driver, as well as the SDAM driver, a driver exposing
SRAM on newer Qualcomm PMICs to other devices.

* tag 'qcom-arm64-defconfig-for-6.3-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: enable Qualcomm SDAM nvmem driver
  arm64: defconfig: enable SM8450 DISPCC clock driver
  arm64: defconfig: enable the clock driver for Qualcomm SA8775P platforms
  arm64: defconfig: enable Visionox VTDR6130 DSI Panel driver
  arm64: defconfig: enable SM8550 DISPCC clock driver
  arm64: defconfig: enable Qualcomm PCIe modem drivers
  arm64: defconfig: Enable SC8280XP Display Clock Controller
  arm64: defconfig: Enable GCC, TCSRCC, pinctrl and interconnect for SM8550
  arm64: defconfig: enable crypto userspace API
  arm64: defconfig: build SDM_LPASSCC_845 as a module
  arm64: defconfig: enable camera on Thundercomm RB5 platform
  arm64: defconfig: build PINCTRL_SM8250_LPASS_LPI as module
  arm64: defconfig: Enable Qualcomm EUD

Link: https://lore.kernel.org/r/20230210181516.2021902-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-13 15:57:33 +01:00
Arnd Bergmann
7dbdc16fc8 More Qualcomm ARM64 DT updates for 6.3
The new Qualcomm QDU1000 and QRU1000 platforms, and the IDP device on
 these are introduced. New support for a couple of USB modem sticks from
 THWC are introduced, so is support for Xiaomi Mi Pad 5 Pro and the Pro
 SKU of the Herobrine device.
 
 The Core Bus Fabric (CBF) is introduced on MSM8996. Interconnect paths
 for UFS are also described.
 
 A few fixes related to the power-grid of herobrine, on SC7280, are
 introduced.
 
 QFPROM is introduced on IPQ8074 and Interconnect providers are added for
 SDM670.
 
 On SDM845 the duplicated wcd9340 audio coded description is moved from
 devices to a common file, audio devices are added to the OnePlus 6 and
 6T.
 
 On SM6115 debug UART, SMP2P, watchdog nodes are introduced, and the
 platform is switched to use #address/size-cells of 2, in line with most
 other platforms.
 
 Camera control interface and clock controllers are added for SM6350, and
 the CCI interface is enabled on the Fairphone FP4.
 
 On SM8350 the interconnect reference of SDHCI controller is corrected,
 DSI1 PHY clocks are properly described as sources for the Display clock
 controller and DSI1 is wired up to the display controller.
 
 The firmware paths are corrected for the Sony Xperia Nagara platform.
 
 The GPR bus, audio servic3es and LPASS pinctrl nodes are added for the
 SM8550 platform. Additionally a few small typos/errors are corrected.
 
 gpio-ranges are corrected across MSM8953, SM6115 and SC8280XP and a
 range of DT validation issues are corrected.
 -----BEGIN PGP SIGNATURE-----
 
 iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmPmmt0VHGFuZGVyc3Nv
 bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FuXsP/0/VRqYf9SxY5iVEWAuUnsf+sVAT
 fGzZ0YvE3NQoYA0xoExVYZWrDDzkdSp2RoMbLh8kWyku1BCmEeV/X8RnbLoQAM8D
 txUJjpazAVxRiMoDgxxyGpn55KVxb6gAO8fXi9mbc6X+0wsPoWsghZVx5AicEiIY
 3f3m63yFjLGO7aOKs7wfBx5odgUuXoBBzzHYw+VKnp9NAhfMLudM7JCa8kTrOnOZ
 JaPMnvbaQg7i1WEW6jJt4Gbp4+f+IqfYhm1RkzzJbVmf1bYWEEhHltM1p50gwkAK
 fFG6mV+j6WqhJd9myhswvuP9YrBQ0cxZjKErBTNSxzegzgOFfxnG4LsRZRh5oJjq
 qZC+edkPXe6DDIidcGcGvkGekc3c1Xidnwoui7xwIFQ/KN+zZDDg+psnAH3L1On+
 /vWKNetiwXZ5uN3yv8WmTm/5YDLBltjh7RlQVo448RMKSfyt6VEJaJHcJN3G3Nof
 J5F8EJI/EanDU9XjpUEEYGZ2e3yagtc9x6ThVMX+k8tqxhZLxhVDRi7SnY0XKfjQ
 5FVE45sX+J5jlnRu6lx4xF2sgO5jUvTEs1vVY/1IloAfCHipsbhQfU8f4KUN0bNO
 XmTDzsDYK/QXGTYQ27P/xCqu8fRTDbRD8cBF5PWEBbw8uDWtK5bZk1mZFjdkNCge
 E3pIAn6Gs8MANubJ
 =wSbI
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPqTZgACgkQmmx57+YA
 GNlv9g//f6Ya0tDtXwr7GTU3HZc/lEEhibifep5aohWuTsMqoUiic1lLdV2/aXsW
 FZxgQ5TaH7UluqZ1Acrxt9+saYaMu15SBgBXM///pYcY7r5p/sKlRSrNU1sKZv29
 psTGrhotU03TM5XFmavu9su7l34sAO1NAiXTF9h/bSdaX4KYUSQCucBlSFQ7Q2c4
 XlqI9uy79NHIC+O6x4RXdYvmAUb6rQ9rZ4WQOzy+gkFbF19gpz9X+XP5nDMPnfnw
 C31+4SrvMI2/sej+3CZjwg/Vfz5Ahq1WKrOd8jPcdpGiXmfP3iDZlMV9dMbwQbzS
 cF7Jx8S7/p6KaAn8OtnCaD4rar17YJnIjpzlP6gZKj82WCheaK2hwDYT1FcR80bj
 tmjH2hvV8X48njgUga18ZM489xdPkw3rWH/jmH8lnntTqOdR0lsbqlnpsztrO/4H
 W0FVXiKanvwOSYE3Z6I7QrL1ajB+33/nnqPiaevkajtoeGShap5v32FieIjrwa8x
 fYMNjxAegzDUUxQNm7omc+oL7PYTwo26qqJcWiMqa8l6LVx/+o6WPmLIZkzGkEAC
 qqzPU/m55c+E+tEkBf9aW1QMgjBfjdysfnu158mgfVH2ouc2l7p92FqMgWCEz2qo
 XSA0dU2enNus2qJM9oAXPzahPzvM8pHN+EPUFnzVupPqlgawnP8=
 =nzqV
 -----END PGP SIGNATURE-----

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

More Qualcomm ARM64 DT updates for 6.3

The new Qualcomm QDU1000 and QRU1000 platforms, and the IDP device on
these are introduced. New support for a couple of USB modem sticks from
THWC are introduced, so is support for Xiaomi Mi Pad 5 Pro and the Pro
SKU of the Herobrine device.

The Core Bus Fabric (CBF) is introduced on MSM8996. Interconnect paths
for UFS are also described.

A few fixes related to the power-grid of herobrine, on SC7280, are
introduced.

QFPROM is introduced on IPQ8074 and Interconnect providers are added for
SDM670.

On SDM845 the duplicated wcd9340 audio coded description is moved from
devices to a common file, audio devices are added to the OnePlus 6 and
6T.

On SM6115 debug UART, SMP2P, watchdog nodes are introduced, and the
platform is switched to use #address/size-cells of 2, in line with most
other platforms.

Camera control interface and clock controllers are added for SM6350, and
the CCI interface is enabled on the Fairphone FP4.

On SM8350 the interconnect reference of SDHCI controller is corrected,
DSI1 PHY clocks are properly described as sources for the Display clock
controller and DSI1 is wired up to the display controller.

The firmware paths are corrected for the Sony Xperia Nagara platform.

The GPR bus, audio servic3es and LPASS pinctrl nodes are added for the
SM8550 platform. Additionally a few small typos/errors are corrected.

gpio-ranges are corrected across MSM8953, SM6115 and SC8280XP and a
range of DT validation issues are corrected.

* tag 'qcom-arm64-for-6.3-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (81 commits)
  arm64: dts: qcom: sc7280: Power herobrine's 3.3 eDP/TS rail more properly
  arm64: dts: qcom: pmk8550: fix PON compatible
  arm64: dts: qcom: sm8550: fix DSI controller compatible
  arm64: dts: qcom: sc7280: Hook up the touchscreen IO rail on evoker
  arm64: dts: qcom: sc7280: Hook up the touchscreen IO rail on villager
  arm64: dts: qcom: sc7280: Add 3ms ramp to herobrine's pp3300_left_in_mlb
  arm64: dts: qcom: sc7280: On QCard, regulator L3C should be 1.8V
  arm64: dts: qcom: sc8280xp: correct LPASS GPIO gpio-ranges
  arm64: dts: qcom: msm8992-lg-bullhead: Enable regulators
  arm64: dts: qcom: sm6115: correct TLMM gpio-ranges
  arm64: dts: qcom: msm8953: correct TLMM gpio-ranges
  arm64: dts: qcom: msm8992-lg-bullhead: Correct memory overlaps with the SMEM and MPSS memory regions
  arm64: dts: qcom: sm8350-hdk: correct LT9611 pin function
  arm64: dts: qcom: sm8350-hdk: align pin config node names with bindings
  arm64: dts: qcom: sm6350: Use specific qmpphy compatible
  arm64: dts: qcom: sm6115: Add smp2p nodes
  arm64: dts: qcom: sm7225-fairphone-fp4: Enable CCI busses
  arm64: dts: qcom: sm6350: Add CCI nodes
  arm64: dts: qcom: sm6350: Add camera clock controller
  dt-bindings: clock: add QCOM SM6350 camera clock bindings
  ...

Link: https://lore.kernel.org/r/20230210192908.2039976-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-13 15:47:52 +01:00
Oliver Upton
3fb901cdc9 KVM: arm64: nv: Use reg_to_encoding() to get sysreg ID
Avoid open-coding and just use the helper to encode the ID from the
sysreg table entry.

No functional change intended.

Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230211190742.49843-1-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 22:10:34 +00:00
Christoffer Dall
191e0e1555 KVM: arm64: nv: Only toggle cache for virtual EL2 when SCTLR_EL2 changes
So far we were flushing almost the entire universe whenever a VM would
load/unload the SCTLR_EL1 and the two versions of that register had
different MMU enabled settings.  This turned out to be so slow that it
prevented forward progress for a nested VM, because a scheduler timer
tick interrupt would always be pending when we reached the nested VM.

To avoid this problem, we consider the SCTLR_EL2 when evaluating if
caches are on or off when entering virtual EL2 (because this is the
value that we end up shadowing onto the hardware EL1 register).

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-19-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:13:30 +00:00
Marc Zyngier
9f75b6d447 KVM: arm64: nv: Filter out unsupported features from ID regs
As there is a number of features that we either can't support,
or don't want to support right away with NV, let's add some
basic filtering so that we don't advertize silly things to the
EL2 guest.

Whilst we are at it, advertize FEAT_TTL as well as FEAT_GTG, which
the NV implementation will implement.

Reviewed-by: Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-18-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:13:30 +00:00
Jintack Lim
280b748e87 KVM: arm64: nv: Emulate EL12 register accesses from the virtual EL2
With HCR_EL2.NV bit set, accesses to EL12 registers in the virtual EL2
trap to EL2. Handle those traps just like we do for EL1 registers.

One exception is CNTKCTL_EL12. We don't trap on CNTKCTL_EL1 for non-VHE
virtual EL2 because we don't have to. However, accessing CNTKCTL_EL12
will trap since it's one of the EL12 registers controlled by HCR_EL2.NV
bit.  Therefore, add a handler for it and don't treat it as a
non-trap-registers when preparing a shadow context.

These registers, being only a view on their EL1 counterpart, are
permanently hidden from userspace.

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
[maz: EL12_REG(), register visibility]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-17-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:13:30 +00:00
Marc Zyngier
e6b367db0f KVM: arm64: nv: Allow a sysreg to be hidden from userspace only
So far, we never needed to distinguish between registers hidden
from userspace and being hidden from a guest (they are always
either visible to both, or hidden from both).

With NV, we have the ugly case of the EL02 and EL12 registers,
which are only a view on the EL0 and EL1 registers. It makes
absolutely no sense to expose them to userspace, since it
already has the canonical view.

Add a new visibility flag (REG_HIDDEN_USER) and a new helper that
checks for it and REG_HIDDEN when checking whether to expose
a sysreg to userspace. Subsequent patches will make use of it.

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-16-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:13:29 +00:00
Marc Zyngier
d9552fe133 KVM: arm64: nv: Emulate PSTATE.M for a guest hypervisor
We can no longer blindly copy the VCPU's PSTATE into SPSR_EL2 and return
to the guest and vice versa when taking an exception to the hypervisor,
because we emulate virtual EL2 in EL1 and therefore have to translate
the mode field from EL2 to EL1 and vice versa.

This requires keeping track of the state we enter the guest, for which
we transiently use a dedicated flag.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-15-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:13:29 +00:00
Jintack Lim
9da117eec9 KVM: arm64: nv: Add accessors for SPSR_EL1, ELR_EL1 and VBAR_EL1 from virtual EL2
For the same reason we trap virtual memory register accesses at virtual
EL2, we need to trap SPSR_EL1, ELR_EL1 and VBAR_EL1 accesses. ARM v8.3
introduces the HCR_EL2.NV1 bit to be able to trap on those register
accesses in EL1. Do not set this bit until the whole nesting support is
completed, which happens further down the line...

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-14-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:13:29 +00:00
Jintack Lim
bd36b1a9eb KVM: arm64: nv: Handle SMCs taken from virtual EL2
Non-nested guests have used the hvc instruction to initiate SMCCC
calls into KVM. This is quite a poor fit for NV as hvc exceptions are
always taken to EL2. In other words, KVM needs to unconditionally
forward the hvc exception back into vEL2 to uphold the architecture.

Instead, treat the smc instruction from vEL2 as we would a guest
hypercall, thereby allowing the vEL2 to interact with KVM's hypercall
surface. Note that on NV-capable hardware HCR_EL2.TSC causes smc
instructions executed in non-secure EL1 to trap to EL2, even if EL3 is
not implemented.

Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-13-maz@kernel.org
[Oliver: redo commit message, only handle smc from vEL2]
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 10:08:39 +00:00
Christoffer Dall
6898a55ce3 KVM: arm64: nv: Handle trapped ERET from virtual EL2
When a guest hypervisor running virtual EL2 in EL1 executes an ERET
instruction, we will have set HCR_EL2.NV which traps ERET to EL2, so
that we can emulate the exception return in software.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-12-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Jintack Lim
93c33702cd KVM: arm64: nv: Inject HVC exceptions to the virtual EL2
As we expect all PSCI calls from the L1 hypervisor to be performed
using SMC when nested virtualization is enabled, it is clear that
all HVC instruction from the VM (including from the virtual EL2)
are supposed to handled in the virtual EL2.

Forward these to EL2 as required.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
[maz: add handling of HCR_EL2.HCD]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-11-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Jintack Lim
47f3a2fc76 KVM: arm64: nv: Support virtual EL2 exceptions
Support injecting exceptions and performing exception returns to and
from virtual EL2.  This must be done entirely in software except when
taking an exception from vEL0 to vEL2 when the virtual HCR_EL2.{E2H,TGE}
== {1,1}  (a VHE guest hypervisor).

[maz: switch to common exception injection framework, illegal exeption
 return handling]

Reviewed-by: Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-10-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Jintack Lim
6ff9dc238a KVM: arm64: nv: Handle HCR_EL2.NV system register traps
ARM v8.3 introduces a new bit in the HCR_EL2, which is the NV bit. When
this bit is set, accessing EL2 registers in EL1 traps to EL2. In
addition, executing the following instructions in EL1 will trap to EL2:
tlbi, at, eret, and msr/mrs instructions to access SP_EL1. Most of the
instructions that trap to EL2 with the NV bit were undef at EL1 prior to
ARM v8.3. The only instruction that was not undef is eret.

This patch sets up a handler for EL2 registers and SP_EL1 register
accesses at EL1. The host hypervisor keeps those register values in
memory, and will emulate their behavior.

This patch doesn't set the NV bit yet. It will be set in a later patch
once nested virtualization support is completed.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
[maz: EL2_REG() macros]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-9-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Christoffer Dall
0043b29038 KVM: arm64: nv: Add nested virt VCPU primitives for vEL2 VCPU state
When running a nested hypervisor we commonly have to figure out if
the VCPU mode is running in the context of a guest hypervisor or guest
guest, or just a normal guest.

Add convenient primitives for this.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-8-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Marc Zyngier
5305cc2c34 KVM: arm64: nv: Add EL2 system registers to vcpu context
Add the minimal set of EL2 system registers to the vcpu context.
Nothing uses them just yet.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-7-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Christoffer Dall
1d05d51bac KVM: arm64: nv: Allow userspace to set PSR_MODE_EL2x
We were not allowing userspace to set a more privileged mode for the VCPU
than EL1, but we should allow this when nested virtualization is enabled
for the VCPU.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-6-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Christoffer Dall
2fb32357ae KVM: arm64: nv: Reset VCPU to EL2 registers if VCPU nested virt is set
Reset the VCPU with PSTATE.M = EL2h when the nested virtualization
feature is enabled on the VCPU.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
[maz: rework register reset not to use empty data structures]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-5-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Christoffer Dall
89b0e7de34 KVM: arm64: nv: Introduce nested virtualization VCPU feature
Introduce the feature bit and a primitive that checks if the feature is
set behind a static key check based on the cpus_have_const_cap check.

Checking vcpu_has_nv() on systems without nested virt enabled
should have negligible overhead.

We don't yet allow userspace to actually set this feature.

Reviewed-by: Ganapatrao Kulkarni <gankulkarni@os.amperecomputing.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-4-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Marc Zyngier
8531bd63a8 KVM: arm64: Use the S2 MMU context to iterate over S2 table
Most of our S2 helpers take a kvm_s2_mmu pointer, but quickly
revert back to using the kvm structure. By doing so, we lose
track of which S2 MMU context we were initially using, and fallback
to the "canonical" context.

If we were trying to unmap a S2 context managed by a guest hypervisor,
we end-up parsing the wrong set of page tables, and bad stuff happens
(as this is often happening on the back of a trapped TLBI from the
guest hypervisor).

Instead, make sure we always use the provided MMU context all the way.
This has no impact on non-NV, as we always pass the canonical MMU
context.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Link: https://lore.kernel.org/r/20230209175820.1939006-3-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Jintack Lim
675cabc899 arm64: Add ARM64_HAS_NESTED_VIRT cpufeature
Add a new ARM64_HAS_NESTED_VIRT feature to indicate that the
CPU has the ARMv8.3 nested virtualization capability, together
with the 'kvm-arm.mode=nested' command line option.

This will be used to support nested virtualization in KVM.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Jintack Lim <jintack.lim@linaro.org>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
[maz: moved the command-line option to kvm-arm.mode]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230209175820.1939006-2-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-11 09:16:11 +00:00
Catalin Marinas
ad4a4d3aff Merge branch 'for-next/signal' into for-next/core
* for-next/signal:
  : Signal handling cleanups
  arm64/signal: Only read new data when parsing the ZT context
  arm64/signal: Only read new data when parsing the ZA context
  arm64/signal: Only read new data when parsing the SVE context
  arm64/signal: Avoid rereading context frame sizes
  arm64/signal: Make interface for restore_fpsimd_context() consistent
  arm64/signal: Remove redundant size validation from parse_user_sigframe()
  arm64/signal: Don't redundantly verify FPSIMD magic
2023-02-10 18:52:21 +00:00
Catalin Marinas
960046361e Merge branch 'for-next/sysreg-hwcaps' into for-next/core
* for-next/sysreg-hwcaps:
  : Make use of sysreg helpers for hwcaps
  arm64/cpufeature: Use helper macros to specify hwcaps
  arm64/cpufeature: Always use symbolic name for feature value in hwcaps
  arm64/sysreg: Initial unsigned annotations for ID registers
  arm64/sysreg: Initial annotation of signed ID registers
  arm64/sysreg: Allow enumerations to be declared as signed or unsigned
2023-02-10 18:52:04 +00:00
Catalin Marinas
156010ed9c Merge branches 'for-next/sysreg', 'for-next/sme', 'for-next/kselftest', 'for-next/misc', 'for-next/sme2', 'for-next/tpidr2', 'for-next/scs', 'for-next/compat-hwcap', 'for-next/ftrace', 'for-next/efi-boot-mmu-on', 'for-next/ptrauth' and 'for-next/pseudo-nmi', remote-tracking branch 'arm64/for-next/perf' into for-next/core
* arm64/for-next/perf:
  perf: arm_spe: Print the version of SPE detected
  perf: arm_spe: Add support for SPEv1.2 inverted event filtering
  perf: Add perf_event_attr::config3
  drivers/perf: fsl_imx8_ddr_perf: Remove set-but-not-used variable
  perf: arm_spe: Support new SPEv1.2/v8.7 'not taken' event
  perf: arm_spe: Use new PMSIDR_EL1 register enums
  perf: arm_spe: Drop BIT() and use FIELD_GET/PREP accessors
  arm64/sysreg: Convert SPE registers to automatic generation
  arm64: Drop SYS_ from SPE register defines
  perf: arm_spe: Use feature numbering for PMSEVFR_EL1 defines
  perf/marvell: Add ACPI support to TAD uncore driver
  perf/marvell: Add ACPI support to DDR uncore driver
  perf/arm-cmn: Reset DTM_PMU_CONFIG at probe
  drivers/perf: hisi: Extract initialization of "cpa_pmu->pmu"
  drivers/perf: hisi: Simplify the parameters of hisi_pmu_init()
  drivers/perf: hisi: Advertise the PERF_PMU_CAP_NO_EXCLUDE capability

* for-next/sysreg:
  : arm64 sysreg and cpufeature fixes/updates
  KVM: arm64: Use symbolic definition for ISR_EL1.A
  arm64/sysreg: Add definition of ISR_EL1
  arm64/sysreg: Add definition for ICC_NMIAR1_EL1
  arm64/cpufeature: Remove 4 bit assumption in ARM64_FEATURE_MASK()
  arm64/sysreg: Fix errors in 32 bit enumeration values
  arm64/cpufeature: Fix field sign for DIT hwcap detection

* for-next/sme:
  : SME-related updates
  arm64/sme: Optimise SME exit on syscall entry
  arm64/sme: Don't use streaming mode to probe the maximum SME VL
  arm64/ptrace: Use system_supports_tpidr2() to check for TPIDR2 support

* for-next/kselftest: (23 commits)
  : arm64 kselftest fixes and improvements
  kselftest/arm64: Don't require FA64 for streaming SVE+ZA tests
  kselftest/arm64: Copy whole EXTRA context
  kselftest/arm64: Fix enumeration of systems without 128 bit SME for SSVE+ZA
  kselftest/arm64: Fix enumeration of systems without 128 bit SME
  kselftest/arm64: Don't require FA64 for streaming SVE tests
  kselftest/arm64: Limit the maximum VL we try to set via ptrace
  kselftest/arm64: Correct buffer size for SME ZA storage
  kselftest/arm64: Remove the local NUM_VL definition
  kselftest/arm64: Verify simultaneous SSVE and ZA context generation
  kselftest/arm64: Verify that SSVE signal context has SVE_SIG_FLAG_SM set
  kselftest/arm64: Remove spurious comment from MTE test Makefile
  kselftest/arm64: Support build of MTE tests with clang
  kselftest/arm64: Initialise current at build time in signal tests
  kselftest/arm64: Don't pass headers to the compiler as source
  kselftest/arm64: Remove redundant _start labels from FP tests
  kselftest/arm64: Fix .pushsection for strings in FP tests
  kselftest/arm64: Run BTI selftests on systems without BTI
  kselftest/arm64: Fix test numbering when skipping tests
  kselftest/arm64: Skip non-power of 2 SVE vector lengths in fp-stress
  kselftest/arm64: Only enumerate power of two VLs in syscall-abi
  ...

* for-next/misc:
  : Miscellaneous arm64 updates
  arm64/mm: Intercept pfn changes in set_pte_at()
  Documentation: arm64: correct spelling
  arm64: traps: attempt to dump all instructions
  arm64: Apply dynamic shadow call stack patching in two passes
  arm64: el2_setup.h: fix spelling typo in comments
  arm64: Kconfig: fix spelling
  arm64: cpufeature: Use kstrtobool() instead of strtobool()
  arm64: Avoid repeated AA64MMFR1_EL1 register read on pagefault path
  arm64: make ARCH_FORCE_MAX_ORDER selectable

* for-next/sme2: (23 commits)
  : Support for arm64 SME 2 and 2.1
  arm64/sme: Fix __finalise_el2 SMEver check
  kselftest/arm64: Remove redundant _start labels from zt-test
  kselftest/arm64: Add coverage of SME 2 and 2.1 hwcaps
  kselftest/arm64: Add coverage of the ZT ptrace regset
  kselftest/arm64: Add SME2 coverage to syscall-abi
  kselftest/arm64: Add test coverage for ZT register signal frames
  kselftest/arm64: Teach the generic signal context validation about ZT
  kselftest/arm64: Enumerate SME2 in the signal test utility code
  kselftest/arm64: Cover ZT in the FP stress test
  kselftest/arm64: Add a stress test program for ZT0
  arm64/sme: Add hwcaps for SME 2 and 2.1 features
  arm64/sme: Implement ZT0 ptrace support
  arm64/sme: Implement signal handling for ZT
  arm64/sme: Implement context switching for ZT0
  arm64/sme: Provide storage for ZT0
  arm64/sme: Add basic enumeration for SME2
  arm64/sme: Enable host kernel to access ZT0
  arm64/sme: Manually encode ZT0 load and store instructions
  arm64/esr: Document ISS for ZT0 being disabled
  arm64/sme: Document SME 2 and SME 2.1 ABI
  ...

* for-next/tpidr2:
  : Include TPIDR2 in the signal context
  kselftest/arm64: Add test case for TPIDR2 signal frame records
  kselftest/arm64: Add TPIDR2 to the set of known signal context records
  arm64/signal: Include TPIDR2 in the signal context
  arm64/sme: Document ABI for TPIDR2 signal information

* for-next/scs:
  : arm64: harden shadow call stack pointer handling
  arm64: Stash shadow stack pointer in the task struct on interrupt
  arm64: Always load shadow stack pointer directly from the task struct

* for-next/compat-hwcap:
  : arm64: Expose compat ARMv8 AArch32 features (HWCAPs)
  arm64: Add compat hwcap SSBS
  arm64: Add compat hwcap SB
  arm64: Add compat hwcap I8MM
  arm64: Add compat hwcap ASIMDBF16
  arm64: Add compat hwcap ASIMDFHM
  arm64: Add compat hwcap ASIMDDP
  arm64: Add compat hwcap FPHP and ASIMDHP

* for-next/ftrace:
  : Add arm64 support for DYNAMICE_FTRACE_WITH_CALL_OPS
  arm64: avoid executing padding bytes during kexec / hibernation
  arm64: Implement HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS
  arm64: ftrace: Update stale comment
  arm64: patching: Add aarch64_insn_write_literal_u64()
  arm64: insn: Add helpers for BTI
  arm64: Extend support for CONFIG_FUNCTION_ALIGNMENT
  ACPI: Don't build ACPICA with '-Os'
  Compiler attributes: GCC cold function alignment workarounds
  ftrace: Add DYNAMIC_FTRACE_WITH_CALL_OPS

* for-next/efi-boot-mmu-on:
  : Permit arm64 EFI boot with MMU and caches on
  arm64: kprobes: Drop ID map text from kprobes blacklist
  arm64: head: Switch endianness before populating the ID map
  efi: arm64: enter with MMU and caches enabled
  arm64: head: Clean the ID map and the HYP text to the PoC if needed
  arm64: head: avoid cache invalidation when entering with the MMU on
  arm64: head: record the MMU state at primary entry
  arm64: kernel: move identity map out of .text mapping
  arm64: head: Move all finalise_el2 calls to after __enable_mmu

* for-next/ptrauth:
  : arm64 pointer authentication cleanup
  arm64: pauth: don't sign leaf functions
  arm64: unify asm-arch manipulation

* for-next/pseudo-nmi:
  : Pseudo-NMI code generation optimisations
  arm64: irqflags: use alternative branches for pseudo-NMI logic
  arm64: add ARM64_HAS_GIC_PRIO_RELAXED_SYNC cpucap
  arm64: make ARM64_HAS_GIC_PRIO_MASKING depend on ARM64_HAS_GIC_CPUIF_SYSREGS
  arm64: rename ARM64_HAS_IRQ_PRIO_MASKING to ARM64_HAS_GIC_PRIO_MASKING
  arm64: rename ARM64_HAS_SYSREG_GIC_CPUIF to ARM64_HAS_GIC_CPUIF_SYSREGS
2023-02-10 18:51:49 +00:00
Linus Torvalds
4f72a263e1 ARM: SoC fixes for 6.2, part 4
All the changes this time are minor devicetree corrections, the majority
 being for 64-bit Rockchip SoC support. These are a couple of corrections
 for properties that are in violation of the binding, some that put the
 machine into safer operating points for the eMMC and thermal settings,
 and missing properties that prevented rk356x PCIe and ethernet from
 working correctly.
 
 The changes for amlogic and mediatek address incorrect properties that
 were preventing the display support on MT8195 and the MMC support
 on various Meson SoCs from working correctly.
 
 The stihxxx-b2120 change fixes the GPIO polarity for the DVB tuner
 to allow this to be used correctly after a futre driver change,
 though it has no effect on older kernels.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPmbm4ACgkQmmx57+YA
 GNmtWhAAur/HSnseXtPfSViejI2QU2zd4nQmUlaJ7c2CgQFEAoc1aL+8FQIiGgtK
 UN8eC+SBrrEzEAouHcUptfwo1/SAIcxwtF96s16xOu/za9yTk0QSugqd1WNh+MuK
 aCXG6iFkStosEPxgpKAWLTI48pdK32MxnckrSLASYIv84LwlaK7QackBmtmXHiiw
 TbBoldv1k1kvhnK7uYjdN5D35fYywv7gwFmEMU3otHLO+aTZZ6RJOfkXN6hc+3lt
 sQg/cacgONznFlCyfCLKIgabb01Aya0oG1nYZrn4c3PrJciDkiVyTKut6OHKqSQV
 CTg+x2DGOeD2Rqtq5K2gvu2kUkvgBK0oghAROIK2u4xTFIqiWyNqcA3AADNePlaz
 p3/H0Io2xyfixt4KNTR7onJ6pTTh5x7PJA5147lX/2WzxoY4W9t3Y8Q4Z2RfLLBw
 jq+DWuLDoJT1TpcvlVuflKalsVnfdVXXYDkNTuXnFRl4j+zSQ36v6fZAUl4g0DTG
 +kFI4Xa11KWKwxAbANYgqDKFS/BG+KuEuPmYnxCuOMnRxIhpv+2Wj+wlsARDUSn/
 Gyv9bsRkEGURAVAvrNnlpTpwp84Vb2b/fBs+7Yg1dKLk4SZ7txJ9vAIaEgDrRt6J
 smlS8NOZem4pZTP8Nr2bvbDPPosEMFj72py9KJU57mbtQ16fsxs=
 =23z6
 -----END PGP SIGNATURE-----

Merge tag 'soc-fixes-6.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC fixes from Arnd Bergmann:
 "All the changes this time are minor devicetree corrections, the
  majority being for 64-bit Rockchip SoC support. These are a couple of
  corrections for properties that are in violation of the binding, some
  that put the machine into safer operating points for the eMMC and
  thermal settings, and missing properties that prevented rk356x PCIe
  and ethernet from working correctly.

  The changes for amlogic and mediatek address incorrect properties that
  were preventing the display support on MT8195 and the MMC support on
  various Meson SoCs from working correctly.

  The stihxxx-b2120 change fixes the GPIO polarity for the DVB tuner to
  allow this to be used correctly after a futre driver change, though it
  has no effect on older kernels"

* tag 'soc-fixes-6.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
  arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
  arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
  ARM: dts: stihxxx-b2120: fix polarity of reset line of tsin0 port
  arm64: dts: mediatek: mt8195: Fix vdosys* compatible strings
  arm64: dts: rockchip: align rk3399 DMC OPP table with bindings
  arm64: dts: rockchip: set sdmmc0 speed to sd-uhs-sdr50 on rock-3a
  arm64: dts: rockchip: fix probe of analog sound card on rock-3a
  arm64: dts: rockchip: add missing #interrupt-cells to rk356x pcie2x1
  arm64: dts: rockchip: fix input enable pinconf on rk3399
  ARM: dts: rockchip: add power-domains property to dp node on rk3288
  arm64: dts: rockchip: add io domain setting to rk3566-box-demo
  arm64: dts: rockchip: remove unsupported property from sdmmc2 for rock-3a
  arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc
  arm64: dts: rockchip: reduce thermal limits on rk3399-pinephone-pro
  arm64: dts: rockchip: use correct reset names for rk3399 crypto nodes
2023-02-10 09:48:42 -08:00
Arnd Bergmann
d339b2e6b1 arm64: reorder defconfig
Some Kconfig options has moved around after a 'make savedefconfig' run,
so move them to their new location to make it easier to see what other
options got removed.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-10 14:26:14 +01:00
Arnd Bergmann
bc6772bbab Amlogic fixes for v6.2-rc, take2:
- Change MMC controllers interrupts flag to level on all families, fixes irq loss & performance issues when cpu loaded
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPVPGJshWBf4d9CyLd9zb2sjISdEFAmPl+7sACgkQd9zb2sjI
 SdFmWA/7BK9o4V7N6Qs2yFF/QPBRwmOHT7v+IRb3Xc9Up13+CzzsOiVXVuPuFnYU
 FOXCOGJC741KWYuwSXGhdBZ9eCU4unDOHVtNBe7vlkXESp6EXXiFKgRHRzKaZLh7
 9kS2SlZ+67I/OpvH49OwuLzZDA5qFfpHj7VWX0f+nZNdlj4dqrTmxKsOHC6qoxao
 e/h7I7CpquNXt/Mkxv6lYj1dWDF5F8WLJNmLykt+wA6jnx7LJGqPGqRKfPSA36lC
 QuEKW6zdJDsUYVUHgYNm+n1i3qezmdODayS+acOfRoNnwy7xrgjZR0qYLKP3We0U
 gnOGBg0HigtCgwggwc9RMTr7x5mLb+5WzWuPccbW9kmEoXTYhCPJhO509uSJpkfG
 +/fFxAQtfnJCn2h30vmmF/mG85dLO/soEDm1ItJ3vKWN9+Kndc9JrOm8xRXg9rzf
 B4orWc6Xp4nemiFiPYyCZ2Cxjq+AEdAKEfDTIlI4bvNNvchJAR5yP5jhSZ2GFrLk
 ivcGwZMMS4On/jPRP5Y8Y2fP1Pgwpv+VmH6SoJSANuGsbBELP4dJuXaOt68jfAEj
 DsHcrnGUytoU/WPxwKr3m1taZ+amHhLWIfVZoUj1/DEby6wD8lnva254oGMUGN1a
 9RAzph5O4Ey9d5JXUNdOCK2emr38oqZZ+1vxR4SLb/InQVuv5pU=
 =OPhx
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPmHP0ACgkQmmx57+YA
 GNmZhg//e+PUAwa0kVh3ncjtu/40eap54lBqraaTix9D0MMyRBJfHx8PUrXL06LP
 x0j9kgnoefWv6FpjCDBPPHoi0A4VhLsVoUX8TGcEVfx7J/KbeZXUUNSQJ2RJaA5k
 OuSgHDog8//rPwLh/TY09DhDJgm2wfh//Bz8u2zq5qjhuphTD0SJK6lE1aednKLN
 O6mLCECHjjV+trPFQLTxBulvredsEKOKrs4zi6BQX8Iv0RjjHHXu1/T9f9K3agK3
 FDsq6k2m4Ew3AZhMocxHCnvbvw1bhmpexLdgTpEqnBj1GlvHw3W7o5x3H1FoqEvY
 BBy8Ilv+Y7U5NK0LdbdEbOunTFDc+i6rBcOxXT8cwbcJcQsvhjXjhD1Hgqg5kgjr
 tMmDXN3bON9oo1CNmfYf7IuBc7EpkTbx17dz2RHlZGajatTCk7EM6fwUr3DTY5CV
 F9L+w1N/eiPAmfmCJaVYrpTgiVAHRKFfeLXGA8t+zxW1MZN2PEV2Yby7XjoamuOQ
 0BMQ1mc1v7RVR1u8rB5Jg7amNasF1RspEfeApb8rWyjl7XLf0xS/ccpKDuVTME1D
 yFnYb53TgmiuyzCPn9HZoo0ZcSwaPiqFsQ2n2l6z57G6LOvvw9KsfPmPGbLOu9hT
 XSTq65IQZ1HTV3t8jXawnseGjGnRGYL/X5Bj0m3OdGTym9SnA/8=
 =sn0U
 -----END PGP SIGNATURE-----

Merge tag 'amlogic-fixes-v6.2-rc-take2' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux into arm/fixes

Amlogic fixes for v6.2-rc, take2:
- Change MMC controllers interrupts flag to level on all families, fixes irq loss & performance issues when cpu loaded

* tag 'amlogic-fixes-v6.2-rc-take2' of https://git.kernel.org/pub/scm/linux/kernel/git/amlogic/linux:
  arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
  arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
  arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive

Link: https://lore.kernel.org/r/761c2ebc-7c93-8504-35ae-3e84ad216bcf@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-10 11:31:25 +01:00
Herbert Xu
4e4a08868f crypto: arm64/sm4-gcm - Fix possible crash in GCM cryption
An often overlooked aspect of the skcipher walker API is that an
error is not just indicated by a non-zero return value, but by the
fact that walk->nbytes is zero.

Thus it is an error to call skcipher_walk_done after getting back
walk->nbytes == 0 from the previous interaction with the walker.

This is because when walk->nbytes is zero the walker is left in
an undefined state and any further calls to it may try to free
uninitialised stack memory.

The sm4 arm64 ccm code gets this wrong and ends up calling
skcipher_walk_done even when walk->nbytes is zero.

This patch rewrites the loop in a form that resembles other callers.

Reported-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Fixes: ae1b83c7d5 ("crypto: arm64/sm4 - add CE implementation for GCM mode")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-02-10 17:20:19 +08:00
Tianjia Zhang
3b9d902153 crypto: arm64/sm4-ccm - Rewrite skcipher walker loop
The fact that an error in the skcipher walker API are indicated
not only by a non-zero return value, but also by the fact that
walk->nbytes is zero, causes the layout of the skcipher walker
loop to be sufficiently different from the usual layout, which
is not a problem in itself, but it is likely to cause reading
confusion and difficulty in code maintenance.

This patch rewrites skcipher walker loop, and separates the
last chunk cryption from the loop to avoid wrong calls to the
skcipher walker API. In addition to following the usual convention
of checking walk->nbytes, it also makes the loop execute logic
clearer and easier to understand.

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-02-10 17:20:19 +08:00
Herbert Xu
57ead1bf1c crypto: arm64/aes-ccm - Rewrite skcipher walker loop
An often overlooked aspect of the skcipher walker API is that an
error is not just indicated by a non-zero return value, but by the
fact that walk->nbytes is zero.

Thus it is an error to call skcipher_walk_done after getting back
walk->nbytes == 0 from the previous interaction with the walker.

This is because when walk->nbytes is zero the walker is left in
an undefined state and any further calls to it may try to free
uninitialised stack memory.

The arm64 ccm code has to deal with zero-length messages, and
it needs to process data even when walk->nbytes == 0 is returned.
It doesn't have this bug because there is an explicit check for
walk->nbytes != 0 prior to the skcipher_walk_done call.

However, the loop is still sufficiently different from the usual
layout and it appears to have been copied into other code which
then ended up with this bug.  This patch rewrites it to follow the
usual convention of checking walk->nbytes.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2023-02-10 17:20:19 +08:00
Heiner Kallweit
66e45351f7 arm64: dts: meson-gx: Make mmc host controller interrupts level-sensitive
The usage of edge-triggered interrupts lead to lost interrupts under load,
see [0]. This was confirmed to be fixed by using level-triggered
interrupts.
The report was about SDIO. However, as the host controller is the same
for SD and MMC, apply the change to all mmc controller instances.

[0] https://www.spinics.net/lists/linux-mmc/msg73991.html

Fixes: ef8d2ffedf ("ARM64: dts: meson-gxbb: add MMC support")
Cc: stable@vger.kernel.org
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/76e042e0-a610-5ed5-209f-c4d7f879df44@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-02-10 09:02:09 +01:00
Heiner Kallweit
ac8db4ccee arm64: dts: meson-g12-common: Make mmc host controller interrupts level-sensitive
The usage of edge-triggered interrupts lead to lost interrupts under load,
see [0]. This was confirmed to be fixed by using level-triggered
interrupts.
The report was about SDIO. However, as the host controller is the same
for SD and MMC, apply the change to all mmc controller instances.

[0] https://www.spinics.net/lists/linux-mmc/msg73991.html

Fixes: 4759fd87b9 ("arm64: dts: meson: g12a: add mmc nodes")
Tested-by: FUKAUMI Naoki <naoki@radxa.com>
Tested-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Tested-by: Jerome Brunet <jbrunet@baylibre.com>
Cc: stable@vger.kernel.org
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/27d89baa-b8fa-baca-541b-ef17a97cde3c@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-02-10 09:02:09 +01:00
Heiner Kallweit
d182bcf300 arm64: dts: meson-axg: Make mmc host controller interrupts level-sensitive
The usage of edge-triggered interrupts lead to lost interrupts under load,
see [0]. This was confirmed to be fixed by using level-triggered
interrupts.
The report was about SDIO. However, as the host controller is the same
for SD and MMC, apply the change to all mmc controller instances.

[0] https://www.spinics.net/lists/linux-mmc/msg73991.html

Fixes: 221cf34bac ("ARM64: dts: meson-axg: enable the eMMC controller")
Reported-by: Peter Suti <peter.suti@streamunlimited.com>
Tested-by: Vyacheslav Bocharov <adeep@lexina.in>
Tested-by: Peter Suti <peter.suti@streamunlimited.com>
Cc: stable@vger.kernel.org
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Acked-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/c00655d3-02f8-6f5f-4239-ca2412420cad@gmail.com
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2023-02-10 09:02:09 +01:00
Jakub Kicinski
8697a258ae Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
net/devlink/leftover.c / net/core/devlink.c:
  565b4824c3 ("devlink: change port event netdev notifier from per-net to global")
  f05bd8ebeb ("devlink: move code to a dedicated directory")
  687125b579 ("devlink: split out core code")
https://lore.kernel.org/all/20230208094657.379f2b1a@canb.auug.org.au/

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-02-09 12:25:40 -08:00
Ard Biesheuvel
1d959312e2 efi: arm64: Wire up BTI annotation in memory attributes table
UEFI v2.10 extends the EFI memory attributes table with a flag that
indicates whether or not all RuntimeServicesCode regions were
constructed with BTI landing pads, permitting the OS to map these
regions with BTI restrictions enabled.

So let's take this into account on arm64.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Will Deacon <will@kernel.org>
2023-02-09 17:39:16 +01:00
Kunihiko Hayashi
2508d5efd7
arm64: dts: uniphier: Fix property name in PXs3 USB node
The property "snps,usb2_gadget_lpm_disable" is wrong.
It should be fixed to "snps,usb2-gadget-lpm-disable".

Cc: stable@vger.kernel.org
Fixes: 19fee1a109 ("arm64: dts: uniphier: Add USB-device support for PXs3 reference board")
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20230207021429.28925-1-hayashi.kunihiko@socionext.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-09 14:04:02 +01:00
Kunihiko Hayashi
a8d3f2d9d2
arm64: dts: uniphier: Add syscon-uhs-mode to SD node
Add sociopnext,syscon-uhs-mode prpperty to the SD node to refer the handle
of the control logic node.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20230207023514.29783-9-hayashi.kunihiko@socionext.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-09 13:58:44 +01:00
Kunihiko Hayashi
f4d624a174
arm64: dts: uniphier: Add syscon compatible string to soc-glue-debug
Add "syscon" compatible string to the nodes for soc-glue-debug
according to the DT schema.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20230207023514.29783-8-hayashi.kunihiko@socionext.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-09 13:58:44 +01:00
Kunihiko Hayashi
f45d620715
arm64: dts: uniphier: Add missing reg properties for glue layer nodes
The nodes for some glue layers don't include necessary reg properties.
Add the properties according to the DT schema.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20230207023514.29783-7-hayashi.kunihiko@socionext.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-09 13:58:44 +01:00
Kunihiko Hayashi
5ebfa90bdd
arm64: dts: uniphier: Align node names for SoC-dependent controller and PHYs with bindings
The node names for SoC-dependent controllers and PHYs should be
generic ones according to the DT schemas.

Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20230207023514.29783-6-hayashi.kunihiko@socionext.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-09 13:58:44 +01:00
Douglas Anderson
f069ede81e arm64: dts: qcom: sc7280: Power herobrine's 3.3 eDP/TS rail more properly
This is the equivalent of commit f5b4811e87 ("arm64: dts: qcom:
sc7180: Add trogdor eDP/touchscreen regulator off-on-time") and commit
23ff866987 ("arm64: dts: qcom: sc7180: Start the trogdor
eDP/touchscreen regulator on"), but for herobrine instead of trogdor.

The motivations for herobrine are the same as for trogdor.

NOTES:
* Currently for herobrine all boards are eDP, not MIPI. If/when we
  have herobrine derivatives that are MIPI they we can evaluate
  whether the same off-on-delay makes sense for them. For trogdor we
  didn't add the delay to MIPI panels because the problem was found
  late and nobody had complained about it. For herobrine defaulting to
  assuming the same 500ms makes sense and if we find we need to
  optimize later we can.
* Currently there are no oddball herobrine boards like homestar where
  the panel really likes to be power cycled. If we have an oddball
  board it will need to split the eDP and touchscreen rail anyway
  (like homestar did) and we'll have to delete the "regulator-boot-on"
  from that board.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230207163550.1.I5ff72b7746d5fca8f10ea61351bde4150ed1a7f8@changeid
2023-02-08 20:09:36 -08:00
Neil Armstrong
12efdeec57 arm64: dts: qcom: pmk8550: fix PON compatible
The right compatible is qcom,pmk8350-pon, it matches the
reg resources associated to the node and the subnodes compatible
properties.

Fixes: e9c0a4e484 ("arm64: dts: qcom: Add PMK8550 pmic dtsi")
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230207-topic-sm8550-upstream-sm8550-dt-fix-v1-2-698d132ab285@linaro.org
2023-02-08 20:09:36 -08:00
Neil Armstrong
c64c1c245f arm64: dts: qcom: sm8550: fix DSI controller compatible
Add missing sm8550 soc specific compatible before fallback to
match the updated bindings.

Fixes: d7da51db5b ("arm64: dts: qcom: sm8550: add display hardware devices")
Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230207-topic-sm8550-upstream-sm8550-dt-fix-v1-1-698d132ab285@linaro.org
2023-02-08 20:09:36 -08:00
Douglas Anderson
ef29188fe0 arm64: dts: qcom: sc7280: Hook up the touchscreen IO rail on evoker
On older revisions of evoker, the touchscreen was either
non-functional or needed special hardware magic to get it talking
properly. It's been decided that the proper way going forward is to
use L3C to power some buffers on the QCard and then configure the
touchscreens for 1.8V. Let's do that.

Note that this is safe to do even on older revs even if it might not
make the touchscreen work there (because they didn't have a properly
stuffed QCard). As talked about in the patch ("arm64: dts: qcom:
sc7280: On QCard, regulator L3C should be 1.8V") the L3C regulator
didn't go anywhere at all on older revs.

This patch relies on the patch ("HID: i2c-hid: goodix: Add
mainboard-vddio-supply") in order to function properly. Without that
patch this one won't do any harm but it won't actually accomplish its
goal.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230206184744.7.I2d960ed7f2445db0cf3d227fde985fbd740f3c4d@changeid
2023-02-08 20:09:36 -08:00
Douglas Anderson
d90b98f570 arm64: dts: qcom: sc7280: Hook up the touchscreen IO rail on villager
On never revs of sc7280-herobrine-villager (rev2+) the L3C rail is
provided to the touchscreen as the IO voltage rail. Let's add it in
the device tree.

NOTE: Even though this is only really needed on rev2+ villagers (-rev0
had non-functioning touchscreen and -rev1 had some hacky hardware
magic), it doesn't actually hurt to do this for old villager revs. As
talked about in the patch ("arm64: dts: qcom: sc7280: On QCard,
regulator L3C should be 1.8V") the L3C regulator didn't go anywhere at
all on older revs. That means that turning it on for older revs
doesn't hurt other than drawing a tiny bit of extra power. Since -rev0
and -rev1 villagers will never make it to real customers and it's nice
not to have too many old device trees, the better tradeoff seems to be
to enable it everywhere.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230206184744.3.I740d409bc5bb69bf4a7b3c4568ea6e7a92f16ccd@changeid
2023-02-08 20:09:36 -08:00
Douglas Anderson
4261cea17a arm64: dts: qcom: sc7280: Add 3ms ramp to herobrine's pp3300_left_in_mlb
The "pp3300_left_in_mlb" rail on herobrine eventually connects up to
"vreg_edp_3p3" on the qcard. On several herobrine designs this rail
has been measured to need more than 1ms to turn on.

While technically a herobrine derivative (defined as anyone including
the "herobrine.dtsi") could change the board to make the rail rise
faster or slower, the fact that two boards (evoker and villager) both
measured it as taking more than 1ms implies that it's probably going
to be the norm. Thus, let's add a "regulator-enable-ramp-delay"
straight into the herobrine.dtsi to handle this. If a particular
derivative board needs a faster or slower one then they can override
it, though that feels unlikely.

While we measured something a bit over 1ms, we'll choose 3ms to give
us a tiny bit of margin. This isn't a rail that turns off and on all
the time anyway and 3ms is nothing compared to the total amount of
time to power on a panel.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230206184744.2.I13814cefc5ab3e0a39ebd09f052e3fd25d4e8f1d@changeid
2023-02-08 20:09:36 -08:00
Douglas Anderson
428df17701 arm64: dts: qcom: sc7280: On QCard, regulator L3C should be 1.8V
On the first sc7280 QCards the L3C rail was never really used for
anything. Stuffing options on the QCard meant that the QCard itself
didn't use this rail for anything. This rail did get sent to the
mainboard, but no existing mainboards ever did anything with it other
that route it to a testpoint.

On later sc7280 QCards, the L3C rail was repurposed. Instead of being
a (nominally) 3.3V rail, it was decided to make it a 1.8V rail. It is
now provided to the display connector (which might route it to the
touchscreen) and also used to power some buffers relating to
touchscreen IO. This rail is getting the additional tag "ts_avccio",
though some places still refer to it as "vreg_l3c_3p0" despite the
fact that the name now specifies the wrong voltage.

Since it never hurts for this rail to be 1.8V (even on old QCards /
old boards), let's just change it to 1.8V across the board and add the
extra "ts_avccio" moniker as a label in the device tree.

Future patches will start using this rail in their touchscreens.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230206184744.1.I784f4b3d7e4a06edafff4a3129f52e749889bc05@changeid
2023-02-08 20:09:36 -08:00
Krzysztof Kozlowski
9c23d6848e arm64: dts: qcom: sc8280xp: correct LPASS GPIO gpio-ranges
The SC8280XP LPASS pin controller has GPIOs 0-18, so correct the number
of GPIOs in gpio-ranges.

Fixes: c18773d162 ("arm64: dts: qcom: sc8280xp: add SoundWire and LPASS")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230203164854.390080-5-krzysztof.kozlowski@linaro.org
2023-02-08 20:09:36 -08:00
Petr Vorel
2866527093 arm64: dts: qcom: msm8992-lg-bullhead: Enable regulators
Enable pm8994_s1, pm8994_l{26,29,30,32} regulators.
Use values from downstream kernel on bullhead rev 1.01.

NOTE: downstream kernel on angler rev 1.01 differences:
* pm8994_l29: regulator-min-microvolt = <2700000>
* pm8994_l{20,28,31}: use regulator-boot-on

Verification:
[    1.832460] s1: Bringing 0uV into 1025000-1025000uV
...
[    2.057667] l26: Bringing 0uV into 987500-987500uV
...
[    2.075722] l29: Bringing 0uV into 2800000-2800000uV
[    2.076604] l30: Bringing 0uV into 1800000-1800000uV
[    2.082431] l31: Bringing 0uV into 1262500-1262500uV
[    2.095767] l32: Bringing 0uV into 1800000-1800000uV

Fixes: f3b2c99e73 ("arm64: dts: Enable onboard SDHCI on msm8992")
Signed-off-by: Petr Vorel <pvorel@suse.cz>
Tested-by: Jamie Douglass <jamiemdouglass@gmail.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230203100952.13857-1-pvorel@suse.cz
2023-02-08 20:09:36 -08:00
Krzysztof Kozlowski
272fc52431 arm64: dts: qcom: sm6115: correct TLMM gpio-ranges
Correct the number of GPIOs in TLMM pin controller.

Fixes: 97e563bf5b ("arm64: dts: qcom: sm6115: Add basic soc dtsi")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Iskren Chernev <me@iskren.info>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230202104452.299048-11-krzysztof.kozlowski@linaro.org
2023-02-08 20:09:36 -08:00
Krzysztof Kozlowski
a4fb71497d arm64: dts: qcom: msm8953: correct TLMM gpio-ranges
Correct the number of GPIOs in TLMM pin controller.

Fixes: 9fb08c8019 ("arm64: dts: qcom: Add MSM8953 device tree")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Luca Weiss <luca@z3ntu.xyz>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230202104452.299048-10-krzysztof.kozlowski@linaro.org
2023-02-08 20:09:35 -08:00
Jamie Douglass
d44106883d arm64: dts: qcom: msm8992-lg-bullhead: Correct memory overlaps with the SMEM and MPSS memory regions
The memory region reserved by a previous commit (see fixes tag below)
overlaps with the SMEM and MPSS memory regions, causing error messages in
dmesg:
	OF: reserved mem: OVERLAP DETECTED!
	reserved@5000000 (0x0000000005000000--0x0000000007200000)
	overlaps with smem_region@6a00000
	(0x0000000006a00000--0x0000000006c00000)

	OF: reserved mem: OVERLAP DETECTED!
	reserved@6c00000 (0x0000000006c00000--0x0000000007200000)
	overlaps with memory@7000000
	(0x0000000007000000--0x000000000ca00000)

This patch resolves both of these by splitting the previously reserved
memory region into two sections either side of the SMEM region and by
cutting off the second memory region to 0x7000000.

Fixes: 22c7e1a0fa ("arm64: dts: msm8992-bullhead: add memory hole region")
Signed-off-by: Jamie Douglass <jamiemdouglass@gmail.com>
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Tested-by: Petr Vorel <pvorel@suse.cz>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230202054819.16079-1-jamiemdouglass@gmail.com
2023-02-08 20:09:35 -08:00
Krzysztof Kozlowski
cd06d92330 arm64: dts: qcom: sm8350-hdk: correct LT9611 pin function
SM8350 pin controller does not have "normal" pin function, so use
"gpio".

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fixes: d96d8f9192 ("arm64: dts: qcom: sm8350-hdk: Enable lt9611uxc dsi-hdmi bridge")
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230201154321.276419-2-krzysztof.kozlowski@linaro.org
2023-02-08 20:09:35 -08:00
Krzysztof Kozlowski
9927f8a59f arm64: dts: qcom: sm8350-hdk: align pin config node names with bindings
Bindings expect pins to be named with certain pattern.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fixes: d96d8f9192 ("arm64: dts: qcom: sm8350-hdk: Enable lt9611uxc dsi-hdmi bridge")
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230201154321.276419-1-krzysztof.kozlowski@linaro.org
2023-02-08 20:09:35 -08:00
Luca Weiss
5ed2b6388b arm64: dts: qcom: sm6350: Use specific qmpphy compatible
The sc7180 phy compatible works fine for some cases, but it turns out
sm6350 does need proper phy configuration in the driver, so use the
newly added sm6350 compatible.

Because the sm6350 compatible is using the new binding, we need to
change the node quite a bit to match it.

This fixes qmpphy init when no USB cable is plugged in during bootloader
stage.

Reviewed-by: Johan Hovold <johan+linaro@kernel.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230120-sm6350-usbphy-v4-3-4d700a90ba16@fairphone.com
2023-02-08 20:09:35 -08:00
Bhupesh Sharma
77b1278ed0 arm64: dts: qcom: sm6115: Add smp2p nodes
Add the adsp, cdsp and modem smp2p nodes to sm6115.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230121200454.1423567-1-bhupesh.sharma@linaro.org
2023-02-08 20:09:35 -08:00
Luca Weiss
bd3dc67bbc arm64: dts: qcom: sm7225-fairphone-fp4: Enable CCI busses
Enable the CCI busses that have cameras connected to them.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221213-sm6350-cci-v2-4-15c2c14c34bb@fairphone.com
2023-02-08 20:09:35 -08:00
Luca Weiss
033fb15f39 arm64: dts: qcom: sm6350: Add CCI nodes
Add nodes for the two CCI blocks found on SM6350.

The first contains two i2c busses and while the second one might also
contains two busses, the downstream kernel only has one configured, and
some boards use the GPIOs for the potential cci1_i2c1 one other
purposes, so leave that one unconfigured.

Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221213-sm6350-cci-v2-3-15c2c14c34bb@fairphone.com
2023-02-08 20:09:35 -08:00
Luca Weiss
4ab96c9c40 arm64: dts: qcom: sm6350: Add camera clock controller
Add a node for the camcc found on SM6350 SoC.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221213-sm6350-cci-v2-2-15c2c14c34bb@fairphone.com
2023-02-08 20:09:35 -08:00
Johan Hovold
480ba14b9a arm64: defconfig: enable Qualcomm SDAM nvmem driver
The SDAM nvmem driver can be used to access the Shared Direct Access
Memory Module registers in some Qualcomm PMICs.

These registers can specifically be used to store a time offset on
platforms where the PMIC RTC time registers are read-only in order to
allow the RTC time to be updated.

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230202155448.6715-19-johan+linaro@kernel.org
2023-02-08 19:05:49 -08:00
Krzysztof Kozlowski
fc0ff3e702 arm64: dts: qcom: sm8350: fixup SDHCI interconnect arguments
After switching interconnects to 2 cells, the SDHCI interconnects need
to get one more argument.

Fixes: 4f287e31ff ("arm64: dts: qcom: sm8350: Use 2 interconnect cells")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119105434.51635-1-krzysztof.kozlowski@linaro.org
2023-02-08 17:23:38 -08:00
Richard Acayan
0daef104e4 arm64: dts: qcom: sdm670: add interconnects
The interconnects for Snapdragon 670 can be controlled. Add their
corresponding nodes in the device tree.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230201010020.84586-2-mailingradian@gmail.com
2023-02-08 16:02:17 -08:00
Jianhua Lu
a41b617530 arm64: dts: qcom: sm8250: Add device tree for Xiaomi Mi Pad 5 Pro
Add support for Xiaomi Mi Pad 5 Pro, codename is xiaomi-elish.

This commit brings support for:
  * ADSP/CDSP/SLPI/VENUS
  * Backlight
  * Battery fuel gauge
  * Framebuffer
  * PCIe0
  * USB2.0

Signed-off-by: Jianhua Lu <lujianhua000@gmail.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230131123515.833-2-lujianhua000@gmail.com
2023-02-08 16:02:17 -08:00
Andrew Halaney
f1d6f9d227 arm64: dts: qcom: sa8540p-ride: Document i2c busses
It isn't obvious in the current devicetree what is connected. Go ahead
and document what's on the other end.

Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
Reviewed-by: Eric Chanudet <echanude@redhat.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230130154823.117542-2-ahalaney@redhat.com
2023-02-08 16:02:17 -08:00
Andrew Halaney
f187e98930 arm64: dts: qcom: sa8540p-ride: Fix some i2c pinctrl settings
Some of the pinctrl groups were invalid for the selected pins. Select
the proper qup group to fix these warnings:

[    6.523566] sc8280xp-tlmm f100000.pinctrl: invalid group "gpio135" for function "qup15"
[    6.535042] sc8280xp-tlmm f100000.pinctrl: invalid group "gpio136" for function "qup15"
[    6.597536] sc8280xp-tlmm f100000.pinctrl: invalid group "gpio158" for function "qup15"
[    6.597544] sc8280xp-tlmm f100000.pinctrl: invalid group "gpio159" for function "qup15"
[    6.597991] sc8280xp-tlmm f100000.pinctrl: invalid group "gpio0" for function "qup15"
[    6.597996] sc8280xp-tlmm f100000.pinctrl: invalid group "gpio1" for function "qup15"

Fixes: e073899ec3 ("arm64: dts: qcom: sa8540p-ride: add i2c nodes")
Reviewed-by: Shazad Hussain <quic_shazhuss@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Brian Masney <bmasney@redhat.com>
Signed-off-by: Andrew Halaney <ahalaney@redhat.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230130154823.117542-1-ahalaney@redhat.com
2023-02-08 16:02:17 -08:00
Abel Vesa
3a63e478b3 arm64: dts: qcom: sm8550: Fix the aoss_qmp node name
The proper name for it is power-management. Currently, with the node
name being power-controller, the bindings check fails due to the
property #power-domain-cells missing.

Fixes: ffc50b2d38 ("arm64: dts: qcom: Add base SM8550 dtsi")
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Sai Prakash Ranjan <quic_saipraka@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127131441.1157679-1-abel.vesa@linaro.org
2023-02-08 16:02:17 -08:00
Krzysztof Kozlowski
c5658e52ba arm64: dts: qcom: sm8550-mtp: correct vdd-l5-l16-supply
Fix typo in vdd-l5-l16 supply of qcom,pm8550-rpmh-regulators.

Fixes: 71342fb91e ("arm64: dts: qcom: Add base SM8550 MTP dts")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127121843.349738-1-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:17 -08:00
Krzysztof Kozlowski
88ec7fb675 arm64: dts: qcom: sm8550: add specific SMMU compatible
Generic SMMU compatibles are not allowed alone and we expect specific
one.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127115513.268843-1-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:17 -08:00
Krzysztof Kozlowski
6216007a3b arm64: dts: qcom: sm8450: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-11-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:17 -08:00
Krzysztof Kozlowski
0223fe2b3f arm64: dts: qcom: sm8350: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-10-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
537f572b2f arm64: dts: qcom: sm8250: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-9-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
5a88bb6146 arm64: dts: qcom: sm8150: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-8-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
45e9251bdd arm64: dts: qcom: sm7225: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-7-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
86dd19bbde arm64: dts: qcom: sdm845: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-6-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
4275d2802b arm64: dts: qcom: sc8280xp: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-5-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
adfb9d68e9 arm64: dts: qcom: sc7180: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-4-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
f8e749dc71 arm64: dts: qcom: sa8295p-adp: align RPMh regulator nodes with bindings
Device node names should be generic and bindings expect certain pattern
for RPMh regulator nodes.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127114347.235963-3-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:16 -08:00
Amit Pundir
1b8f9b9109 arm64: dts: qcom: sdm845-xiaomi-beryllium: Add reserved memory region
Put cont splash memory region under the reserved-memory as
confirmed by the downstream code for both Tianma and EBBG variants.

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127063355.1775246-1-amit.pundir@linaro.org
2023-02-08 16:02:16 -08:00
Caleb Connolly
b7b7342868 arm64: dts: qcom: sdm845-oneplus-*: add audio devices
Populate the audio devices found on the OnePlus 6 and 6T using the
sdm845-sndcard driver.

Both devices have the earpiece and headphone jack connected to the
WCD9341 codec. The OnePlus 6 uses the MAX98927 speaker codec which is
already supported upstream. The OnePlus 6T uses a currently unsupported
TFA9894 codec.

Two internal microphones are supported, as well as an external headset
mic. Each DAI link is expected to be used for a single device.

Alsa UCM2 configs for this setup can be found here, they are not yet
upstream and include support for call audio which is missing in this
patch

9ed12836b2/ucm2/OnePlus

Co-developed-by: Dylan Van Assche <me@dylanvanassche.be>
Signed-off-by: Dylan Van Assche <me@dylanvanassche.be>
Signed-off-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230125231829.2621768-1-caleb.connolly@linaro.org
2023-02-08 16:02:16 -08:00
Krzysztof Kozlowski
47a17dfb65 arm64: dts: qcom: sdm845-audio-wcd9340: commonize clocks
Clock for WCD9340 is coming from the SoC and is the same in all users,
so move it to common file to reduce the code duplication (which still
allows further customizations per board).

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123084300.22353-6-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:10 -08:00
Krzysztof Kozlowski
71c461a325 arm64: dts: qcom: sdm845-audio-wcd9340: commonize pinctrl
Pin configuration fow WCD9340 is the same in all users, so move it to
common file to reduce the code duplication (which still allows further
customizations per board).

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123084300.22353-5-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:10 -08:00
Krzysztof Kozlowski
34c8617377 arm64: dts: qcom: sdm845: move codec to separate file
Re-organize SDM845 audio codec into separate, audio DTSI which
should be included and customized by the SDM845 boards wanting audio.
The codec node is anyway not a property of the SoC, but the boards.

On all others boards not using audio, keep the Slimbus node disabled as
it is empty.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Caleb Connolly <caleb.connolly@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123084300.22353-4-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:10 -08:00
Krzysztof Kozlowski
099f035d03 arm64: dts: qcom: sdm850-lenovo-yoga: correct sound compatible
There is dedicated compatible for Lenovo Yoga C630 sound card
(documented in bindings and used by Linux driver), so use it along with
a generic sound card fallback. The device is actually fully compatible
with the generic one.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123084300.22353-3-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:10 -08:00
Krzysztof Kozlowski
f7c45f3d87 arm64: dts: qcom: sdm845-xiaomi-beryllium: add generic sound compatible
Use generic sound card fallback compatible, because the device is
actually fully compatible with the generic one.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123084300.22353-2-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:10 -08:00
Krzysztof Kozlowski
077d29e819 arm64: dts: qcom: sdm845-db845c: add generic sound compatible
Use generic sound card fallback compatible, because the device is
actually fully compatible with the generic one.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123084300.22353-1-krzysztof.kozlowski@linaro.org
2023-02-08 16:02:10 -08:00
Konrad Dybcio
ba23455e5b arm64: dts: qcom: sm8250: Disable wsamacro and swr0 by default
They are not used on all boards, so disable them by default.
Enable them back on MTP/RB5, which were the only current users.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230124164616.228619-1-konrad.dybcio@linaro.org
2023-02-08 15:57:20 -08:00
Krzysztof Kozlowski
fa3ba1c6a0 arm64: dts: qcom: sm8550: drop incorrect cells from serial
The serial/UART device node does not have children with unit addresses,
so address/size cells are not correct.

Fixes: 377972ac74 ("arm64: dts: qcom: sm8550: add I2C Master Hub nodes")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230124084951.38195-4-krzysztof.kozlowski@linaro.org
2023-02-08 15:57:19 -08:00
Krzysztof Kozlowski
60d2da2c91 arm64: dts: qcom: sm8450: drop incorrect cells from serial
The serial/UART device node does not have children with unit addresses,
so address/size cells are not correct.

Fixes: f583741847 ("arm64: dts: qcom: sm8450: add uart20 node")
Fixes: 5188049c9b ("arm64: dts: qcom: Add base SM8450 DTSI")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230124084951.38195-3-krzysztof.kozlowski@linaro.org
2023-02-08 15:57:19 -08:00
Krzysztof Kozlowski
6027331e6e arm64: dts: qcom: sm8350: drop incorrect cells from serial
The serial/UART device node does not have children with unit addresses,
so address/size cells are not correct.

Fixes: cf03cd7e12 ("arm64: dts: qcom: sm8350: Set up WRAP0 QUPs")
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230124084951.38195-2-krzysztof.kozlowski@linaro.org
2023-02-08 15:57:19 -08:00
Krzysztof Kozlowski
f7aaaf3030 arm64: dts: qcom: use generic node name for Bluetooth
Node names should be generic (as Devicetree spec mandates), so use
"bluetooth" for BT node.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230124084951.38195-1-krzysztof.kozlowski@linaro.org
2023-02-08 15:57:19 -08:00
Konrad Dybcio
cce9c1d0b0 arm64: dts: qcom: sm8450: Fix DSIn PHY compatible
Use the correct compatible so that the driver can probe properly.

Fixes: a6dd1206e4 ("arm64: dts: qcom: sm8450: add display hardware devices")
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Tested-by: Neil Armstrong <neil.armstrong@linaro.org> # on HDK8450
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123200552.553181-1-konrad.dybcio@linaro.org
2023-02-08 15:57:19 -08:00
Robert Marko
a1ab382704 arm64: dts: qcom: ipq8074: add QFPROM node
IPQ8074 has efuses like other Qualcomm SoC-s that are required for
determining various HW quirks which will be required later for CPR etc,
so lets add the QFPROM node for start.

Individidual fuses will be added as they are required.

Signed-off-by: Robert Marko <robimarko@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Kathiravan T <quic_kathirav@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123101631.475712-2-robimarko@gmail.com
2023-02-08 15:57:19 -08:00
Johan Hovold
cd649ac405 arm64: dts: qcom: sm8550: fix USB-DP PHY resets
The USB-DP PHY resets have been switched.

Fixes: 7f7e5c1b03 ("arm64: dts: qcom: sm8550: Add USB PHYs and controller nodes")
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230123101607.2413-1-johan+linaro@kernel.org
2023-02-08 15:57:19 -08:00
Dmitry Baryshkov
6701b17395 arm64: dts: qcom: msm8996: add CBF device entry
Add device tree node for the CBF clock.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230120061417.2623751-8-dmitry.baryshkov@linaro.org
2023-02-08 15:57:19 -08:00
Dmitry Baryshkov
8ae72166c2 arm64: dts: qcom: msm8996 switch from RPM_SMD_BB_CLK1 to RPM_SMD_XO_CLK_SRC
The vendor kernel uses RPM_SMD_XO_CLK_SRC clock as an CXO clock rather
than using the RPM_SMD_BB_CLK1 directly. Follow this example and switch
msm8996.dtsi to use RPM_SMD_XO_CLK_SRC clock instead of RPM_SMB_BB_CLK1.

Fixes: 2b8c9c77c2 ("arm64: dts: qcom: msm8996: convert xo_board to RPM_SMD_BB_CLK1")
Suggested-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230120061417.2623751-7-dmitry.baryshkov@linaro.org
2023-02-08 15:57:15 -08:00
Kees Cook
25b84002af arm64: Support Clang UBSAN trap codes for better reporting
When building with CONFIG_UBSAN_TRAP=y on arm64, Clang encodes the UBSAN
check (handler) type in the esr. Extract this and actually report these
traps as coming from the specific UBSAN check that tripped.

Before:

  Internal error: BRK handler: 00000000f20003e8 [#1] PREEMPT SMP

After:

  Internal error: UBSAN: shift out of bounds: 00000000f2005514 [#1] PREEMPT SMP

Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Mukesh Ojha <quic_mojha@quicinc.com>
Reviewed-by: Fangrui Song <maskray@google.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will@kernel.org>
Cc: John Stultz <jstultz@google.com>
Cc: Yongqin Liu <yongqin.liu@linaro.org>
Cc: Sami Tolvanen <samitolvanen@google.com>
Cc: Yury Norov <yury.norov@gmail.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Marco Elver <elver@google.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: llvm@lists.linux.dev
Signed-off-by: Kees Cook <keescook@chromium.org>
2023-02-08 15:26:58 -08:00
Neil Armstrong
bbf814c98f arm64: defconfig: enable SM8450 DISPCC clock driver
Build the Qualcomm SM8450 Display Clock Controller driver as a module

Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230127-topic-sm8450-upstream-defconfig-v1-1-93cf603db08b@linaro.org
2023-02-08 14:59:16 -08:00
Dmitry Baryshkov
bc72f13e44 arm64: dts: qcom: msm8996: enable UFS interconnects
Specify interconnects to be used by the UFS host controller.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119144326.2492847-3-dmitry.baryshkov@linaro.org
2023-02-08 14:24:05 -08:00
Bhupesh Sharma
7b54d92a9c arm64: dts: qcom: sm6115: Add watchdog node to dtsi
Add watchdog node in Qualcomm sm6115 SoC dtsi.

Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119123200.1021735-1-bhupesh.sharma@linaro.org
2023-02-08 14:21:12 -08:00
Krzysztof Kozlowski
a8ce63441a arm64: dts: qcom: sc7280-idp: drop incorrect properties
The sound card does not expose DAIs and does not use custom qcom
properties, so drop '#sound-dai-cells', 'qcom,msm-mbhc-gnd-swh' and
'qcom,msm-mbhc-hphl-swh':

  sc7280-idp.dtb: sound: '#sound-dai-cells', 'qcom,msm-mbhc-gnd-swh', 'qcom,msm-mbhc-hphl-swh' do not match any of the regexes: '^dai-link@[0-9a-f]$', 'pinctrl-[0-9]+'

Reported-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119122205.73372-2-krzysztof.kozlowski@linaro.org
2023-02-08 14:20:38 -08:00
Krzysztof Kozlowski
a1efba3362 arm64: dts: qcom: sc7280-herobrine-audio-wcd9385: drop incorrect properties
The sound card does not expose DAIs and does not use custom qcom
properties, so drop '#sound-dai-cells', 'qcom,msm-mbhc-gnd-swh' and
'qcom,msm-mbhc-hphl-swh':

  sc7280-herobrine-crd.dtb: sound: '#sound-dai-cells', 'qcom,msm-mbhc-gnd-swh', 'qcom,msm-mbhc-hphl-swh' do not match any of the regexes: '^dai-link@[0-9a-f]$', 'pinctrl-[0-9]+'

Reported-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119122205.73372-1-krzysztof.kozlowski@linaro.org
2023-02-08 14:20:38 -08:00
Konrad Dybcio
70d1e09ebf arm64: dts: qcom: sm6115: Use 64 bit addressing
SM6115's SMMU uses 36bit VAs, which is a good indicator that we
should increase (dma-)ranges - and by extension #address- and
 #size-cells to prevent things from getting lost in translation
(both literally and figuratively). Do so.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119101644.10711-2-konrad.dybcio@linaro.org
2023-02-08 14:18:48 -08:00
Konrad Dybcio
2f52e87499 arm64: dts: qcom: sm6115: Add mdss_ prefix to mdss nodes
Add a mdss_ prefix to mdss nodes to keep them all near each other
when referencing them by label in device DTs.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230119101644.10711-1-konrad.dybcio@linaro.org
2023-02-08 14:13:54 -08:00
Yang Xiwen
faf6943146 arm64: dts: qcom: msm8916-thwc: Add initial device trees
This commit adds support for the ufi-001C and uf896 WiFi/LTE dongle made by
Tong Heng Wei Chuang based on MSM8916.
uf896 is another variant for the usb stick. The board design
differs by using different gpios for the keys and leds.

Note: The original firmware does not support 64-bit OS. It is necessary
to flash 64-bit TZ firmware to boot arm64.

Currently supported:
- All CPU cores
- Buttons
- LEDs
- Modem
- SDHC
- USB Device Mode
- UART

Co-developed-by: Jaime Breva <jbreva@nayarsystems.com>
Signed-off-by: Jaime Breva <jbreva@nayarsystems.com>
Co-developed-by: Nikita Travkin <nikita@trvn.ru>
Signed-off-by: Nikita Travkin <nikita@trvn.ru>
Signed-off-by: Yang Xiwen <forbidden405@foxmail.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2023-02-08 14:12:42 -08:00
Bhupesh Sharma
25aab0b852 arm64: dts: qcom: sm6115: Add geni debug uart node for qup0
qup0 on sm6115 / sm4250 has 6 SEs, with SE4 as debug uart.
Add the debug uart node in sm6115 dtsi file.

Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Rob Herring <robh+dt@kernel.org>
Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230208122718.338545-1-bhupesh.sharma@linaro.org
2023-02-08 13:11:35 -08:00
Ard Biesheuvel
a088cf8eee arm64: kprobes: Drop ID map text from kprobes blacklist
The ID mapped text region is never accessed via the normal kernel
mapping of text, and so it was moved into .rodata instead. This means it
is no longer considered as a suitable place for kprobes by default, and
the explicit blacklist is unnecessary, and actually results in an error
message at boot:

  kprobes: Failed to populate blacklist (error -22), kprobes not restricted, be careful using them!

So stop blacklisting the ID map text explicitly.

Fixes: af7249b317 ("arm64: kernel: move identity map out of .text mapping")
Reported-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20230204101807.2862321-1-ardb@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-07 18:25:10 +00:00
Oliver Upton
5f623a598d KVM: arm64: Mark some VM-scoped allocations as __GFP_ACCOUNT
Generally speaking, any memory allocations that can be associated with a
particular VM should be charged to the cgroup of its process.
Nonetheless, there are a couple spots in KVM/arm64 that aren't currently
accounted:

 - the ccsidr array containing the virtualized cache hierarchy

 - the cpumask of supported cpus, for use of the vPMU on heterogeneous
   systems

Go ahead and set __GFP_ACCOUNT for these allocations.

Reviewed-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Link: https://lore.kernel.org/r/20230206235229.4174711-1-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-07 13:56:18 +00:00
Marc Zyngier
67d953d4d7 KVM: arm64: Fix non-kerneldoc comments
The robots amongts us have started spitting out irritating emails about
random errors such as:

<quote>
arch/arm64/kvm/arm.c:2207: warning: expecting prototype for Initialize Hyp().
Prototype was for kvm_arm_init() instead
</quote>

which makes little sense until you finally grok what they are on about:
comments that look like a kerneldoc, but that aren't.

Let's address this before I get even more irritated... ;-)

Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/63e139e1.J5AHO6vmxaALh7xv%25lkp@intel.com
Link: https://lore.kernel.org/r/20230207094321.1238600-1-maz@kernel.org
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-07 13:55:23 +00:00
Krzysztof Kozlowski
6de7f9c343 arm64: dts: qcom: sm8550: add GPR and LPASS pin controller
Add the ADSP GPR (Generic Packet Router) and LPASS LPI (Low Power Audio
SubSystem Low Power Island) pin controller nodes used as part of audio
subsystem on SM8550.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
[bjorn: Shortened stream mask, per Konrad's request]
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230206150744.513967-1-krzysztof.kozlowski@linaro.org
2023-02-06 12:49:04 -08:00
Arnd Bergmann
cfd5bdf3e9 SoCFPGA dts updates for v6.3
- Align UART node with bindings
 - Add pinctrl properties for Stratix10/Agilex
 - Change address-cells to 2 to support 64-bit address for fpga region
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmPhKSIACgkQGZQEC4Gj
 KPQG5hAAl05XiutOnl7CVJNk2jlZMbjhFXGNQ+1+Wq7wrZjKUuPPbHMoAATjH1kf
 N/CxxfuD2NkILegGsYReeQ5YRGLzmRf8/pT0whaOari+6+VWiGfw1mxY5xmIaT0U
 e/imSeInEmT7M9f8vAooCiUPOI7cXQzHUTquqUv6tvhY3sodm8AkgRldEbcLC6Qq
 MrBhh5ttYAA1RsTGexDf6OZpZJ0ULbLyKLtul/k8qsqytRu20EC4NFNwqs0MA6M0
 omF69Axig3ZLlBebeR7z7k2dzlDttoCXdDdf1BJ2ZRwtv7kqxeBLmx4hsSKKJFq6
 tv39tCn6ZXNbG7Lx/exJ3Csge1PkEfx8/W+Ka/glbjRyfeSCXsUVL6c4WLTzy5LD
 sA/U6SzpLUywSlME2Kt7D8oFyTtYee1NDwB31jHmFmKFDipwzIc+xNj6GuPSCock
 vh53Oy0wHooxL6g3A3GZEjQP3Dxp11IqBJhP3xE2kYsgIEpZljXpMDMmGfrOS2yA
 PO2h31CN17559ixmD18qsRs5rVuiRJUPjtGZe1XetCqVkP0IHK7UFifWAASXA+3t
 In0IiSlGIrKjuviuwH3qu624fk1XmD+wvso/rtmbyvddfdxtNC9C0cafnzemgeNc
 7mmjZyLer2smnJnoZKQZo5hUx1wy/+MRFUNYkRmUEVpryy8ugd0=
 =Ww6H
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPhWZkACgkQmmx57+YA
 GNkdYA/9FUSRrxuny1iOeIIf8+2RY9PB4SvNiaUQ5t9r/DqGmGkqkIqV/CMmjA2s
 hLbSY5/JV8HVQ0DPoP1/fkyEHlKaTQe0cJ8QAfzGaStE5M/0JNeV7HLsn+IMzEoS
 31ShrP4xO1ANq9V3usOilfUF3S39eogBCzTYf63J61rC1a2uhU8LAu79E2Utrkpq
 KVTFcEsSMGPGFjCkjZn9plX43tYXecPVsNEo1H10E8nDCinvgQv2S7GE/cjnFk2e
 S51rM1izxyqt5Qu8OhXm6QzKm9eX+xYymdYEpfhVepfuJ5k6+MKksdLT6HGlO4PP
 ktLXbtxVmzP/YIkJ+hPhOMJ53nFgs2328chaS9onUYC/hjYIQB26zhv4CHWjDxne
 Urwl0MtgWDmwBFsjExE2wUZ77+DFUIOMbW60FAr6ZbiPFbwrINvxwac8FT0vIprX
 PWXwllimnswEHqZEQtJk6+AbSOm9AUXtft/wHCrLG+G41QYlhUHyjvFsCoUzUdcp
 ppwKbH3EvC45F7yiQwoPzEwQjPy5VkSiHfAs1ozIH65pjXj1KmAmEQ4iuLvEx8H4
 paizdjP9SDZ1u37t8Y58Ta9tuNKFaZY9Ef5WQs3SByTbJMwIh6lIp6nRVvA/x2WQ
 2akDOaSS5Nf59mg8DtLUpYGSnchL5/qrgCxyPo1haPJeHl1ZGUM=
 =SCRk
 -----END PGP SIGNATURE-----

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

SoCFPGA dts updates for v6.3
- Align UART node with bindings
- Add pinctrl properties for Stratix10/Agilex
- Change address-cells to 2 to support 64-bit address for fpga region

* tag 'socfpga_dts_updates_for_v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  arm64: dts: socfpga: change address-cells to support 64-bit addressing
  arm64: dts: stratix10: add i2c pins for pinctrl
  arm64: dts: add pinctrl-single property for Stratix10/Agilex
  ARM: dts: socfpga: align UART node name with bindings

Link: https://lore.kernel.org/r/20230206162425.311593-1-dinguyen@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-06 20:48:41 +01:00
Marc Zyngier
9442d05bba arm64/sme: Fix __finalise_el2 SMEver check
When checking for ID_AA64SMFR0_EL1.SMEver, __check_override assumes
that the ID_AA64SMFR0_EL1 value is in x1, and the intent of the code
is to reuse value read a few lines above.

However, as the comment says at the beginning of the macro, x1 will
be clobbered, and the checks always fails.

The easiest fix is just to reload the id register before checking it.

Fixes: f122576f35 ("arm64/sme: Enable host kernel to access ZT0")
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-06 16:34:29 +00:00
Arnd Bergmann
f7401f6bc7 TI K3 device tree updates for v6.3
New features:
 J784S4 SoC and EVM support
 AM68 and AM69 StarterKit, phyBOARD-Electra-AM642, Siemens IoT2050 M.2
 AM62A7 SK additional peripherals
 AM62 SK USB support
 
 Non critical fixes
 AM62:
 McSPI Clock ID fixes
 MMC TAP value updates
 J7200:
 pinmux range update
 All:
 Cache DT node fixes
 
 Cleanups:
 Reorder dts Makefile entries alphabetically
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEEyRC2zAhGcGjrhiNExEYeRXyRFuMFAmPdN9UQHHZpZ25lc2hy
 QHRpLmNvbQAKCRDERh5FfJEW4w4NB/9BebQHfTau/InqXqL24ofgqzpEbq51zmcl
 2TN1cCMG7Dpln8cvIwoj2KBLkTD//gP5Vx5oTdbFo5EJ/cH5Ohg39zLy773+ZU9O
 tD3wqzI1jUZjvn4H+atds1r5TmDyBoyRiDq90h6XiAFvu72GabW3wCF6wj3kQirl
 5a8+gjKZuEeV990ypppmsKWdZcfEX2b84tGdz+4vtMFNbQamXfbmrozYB1Fcjj3Y
 sZDi8J+HUmUq+wHpaoQVSTfeKQxnHg4nmrn5jVifGnEQcKNQUjRvSrZ0Mh3ARbXR
 OdhA5U+5urEUK3YtDj7STW2VmKCSZiTyEsXwNPCuEMk3/4THWLk6
 =Ddwb
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPg3wAACgkQmmx57+YA
 GNkwZw//fJqEFL7a8QXVwIF2xkCyPvLMliD4KpqrLGp48XcWo/PoJhAgp2oP5qG8
 keN8VqlYSth1BKqL8UCY7bU3tR7TfGWFTF9r0TnNW/ZGY3HwEntSTeoNXUgF4rGW
 3F7euW2+2DELAzmoHNNCR7i4IaCnlXgZBEzxKOmLPmJtbzWIIKWJCHGyw2kjfCqo
 8rOIwHQjEOQ9iDe9j96BE89meVRqOrNM3YoUn0Wyah28Vm1qyhLX9enbeUPw7TYe
 CzfLQCF0POre42iOYOqwBeflnrgj1ZqTbO+FnKCozJhgLesZEdL6Yv19vjnE04VN
 7kriiPTKSH4jrOccvc3SFHuekUfRnlCF+Tsku/Ft+JjtvSHMghqsIgtLMoMforrC
 c5iBmem4xnoVvyjWlgvI8NfLvRSZQ1HWe9SsF282Iy950LxqrLwH9nXzPd5HMJNB
 tBp+sWa3fzW/u4Qic7YppwZ6w0lX8jbnC3qn1ngBudM9UjrHupHmsDaTE94VWi1B
 PjjcPmAXKDje1IiLBVG0mRBVmr5hFf3wZq2j6+ylr8aq7QqWE4ksHFk1m9XitQ2T
 dIsuH6nJXP/bhjv3Kgfb4igHFewmh9PiZJ9OQ/H2A1Zz1P2owX2G1gc9qXrePfvs
 lX/X4n+hNOt+l9YmJKCTlfuOpnuslqtM9Dt6ZMMcKFw7f9/+Hgg=
 =StZP
 -----END PGP SIGNATURE-----

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

TI K3 device tree updates for v6.3

New features:
J784S4 SoC and EVM support
AM68 and AM69 StarterKit, phyBOARD-Electra-AM642, Siemens IoT2050 M.2
AM62A7 SK additional peripherals
AM62 SK USB support

Non critical fixes
AM62:
McSPI Clock ID fixes
MMC TAP value updates
J7200:
pinmux range update
All:
Cache DT node fixes

Cleanups:
Reorder dts Makefile entries alphabetically

* tag 'ti-k3-dt-for-v6.3' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux: (25 commits)
  arm64: dts: ti: Makefile: Rearrange entries alphabetically
  arch: arm64: dts: Add support for AM69 Starter Kit
  dt-bindings: arm: ti: Add binding for AM69 Starter Kit
  arm64: dts: ti: iot2050: Add support for M.2 variant
  dt-bindings: arm: ti: Add binding for Siemens IOT2050 M.2 variant
  arm64: dts: ti: iot2050: Add layout of OSPI flash
  arm64: dts: ti: k3-j7200: Fix wakeup pinmux range
  arm64: dts: ti: k3-am68-sk: Add support for AM68 SK base board
  arm64: dts: ti: Add initial support for AM68 SK System on Module
  dt-bindings: arm: ti: Add binding for AM68 SK
  arm64: dts: Update cache properties for ti
  arm64: dts: ti: Add support for phyBOARD-Electra-AM642
  dt-bindings: arm: ti: Add bindings for PHYTEC AM64x based hardware
  arm64: dts: ti: k3-am62a7-sk: Enable USB1 node
  arm64: dts: ti: k3-am62a7-sk: Enable ethernet port
  arm64: dts: ti: k3-am62a-main: Add more peripheral nodes
  arm64: dts: ti: k3-am62a-mcu: Add MCU domain peripherals
  arm64: dts: ti: Add support for J784S4 EVM board
  arm64: dts: ti: Add initial support for J784S4 SoC
  dt-bindings: pinctrl: k3: Introduce pinmux definitions for J784s4
  ...

Link: https://lore.kernel.org/r/642cf238-43e5-d6fa-68b5-a9dfbc0277bf@ti.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-06 12:05:36 +01:00
Greg Kroah-Hartman
f6b2ce79b5 Merge 6.2-rc7 into tty-next
We need the tty/serial fixes in here as well.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-06 10:48:49 +01:00
Greg Kroah-Hartman
924fb3ec50 Merge 6.2-rc7 into usb-next
We need the USB fixes in here, and this resolves a merge conflict with
the i915 driver as reported in linux-next

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-06 08:33:30 +01:00
Linus Torvalds
c00f4ddde0 ARM64:
- Yet another fix for non-CPU accesses to the memory backing
   the VGICv3 subsystem
 
 - A set of fixes for the setlftest checking for the S1PTW
   behaviour after the fix that went in ealier in the cycle
 -----BEGIN PGP SIGNATURE-----
 
 iQFIBAABCAAyFiEE8TM4V0tmI4mGbHaCv/vSX3jHroMFAmPeZxwUHHBib256aW5p
 QHJlZGhhdC5jb20ACgkQv/vSX3jHroMh7Af/W3CX09KfdKYidbnF4Vx5rkaBaseP
 ox77Qco8j6DcC3fazs5TZtiN7pOSf6488VmbS43HkfZUoNAWmXn8tvwvX+a4pNE9
 yYjXQYRzOjyShPJIsBehlocn3F5G1KvZ8rVl5deVjBRtY5Vd1NzliFPL/EVZiVBk
 l6IHi0rawUTaSGJ9ZLBglQ9wEuAGv1R0SkjhwlXQ6AbupKB1n3tvgOSlKWbwP9fZ
 qJN0mOy38lp2YNRtsoZPiyf9AxGXd9XX6twQ4bhDr9h540HrbzzFh8mWu536X7mg
 dhWwggHidzN8Jzih2TnPByqorGIiJ4ab1iU6udp2X0oiaacfoIFzh8vrlA==
 =7/HY
 -----END PGP SIGNATURE-----

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

Pull kvm fixes from Paolo Bonzini:
 "ARM64:

   - Yet another fix for non-CPU accesses to the memory backing the
     VGICv3 subsystem

   - A set of fixes for the setlftest checking for the S1PTW behaviour
     after the fix that went in ealier in the cycle"

* tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
  KVM: selftests: aarch64: Test read-only PT memory regions
  KVM: selftests: aarch64: Fix check of dirty log PT write
  KVM: selftests: aarch64: Do not default to dirty PTE pages on all S1PTWs
  KVM: selftests: aarch64: Relax userfaultfd read vs. write checks
  KVM: arm64: Allow no running vcpu on saving vgic3 pending table
  KVM: arm64: Allow no running vcpu on restoring vgic3 LPI pending status
  KVM: arm64: Add helper vgic_write_guest_lock()
2023-02-04 11:21:27 -08:00
Paolo Bonzini
25b72cf7da KVM/arm64 fixes for 6.2, take #3
- Yet another fix for non-CPU accesses to the memory backing
   the VGICv3 subsystem
 
 - A set of fixes for the setlftest checking for the S1PTW
   behaviour after the fix that went in ealier in the cycle
 -----BEGIN PGP SIGNATURE-----
 
 iQJDBAABCgAtFiEEn9UcU+C1Yxj9lZw9I9DQutE9ekMFAmPWwGEPHG1hekBrZXJu
 ZWwub3JnAAoJECPQ0LrRPXpDi/wP/3kbZrZ+y/YNcYioQwqibRS5DKuACKXM1dbh
 sMX0e8t3frmkrfkHZ1FsBNjSWtDLmRbjANNDWi8ypAXaPVm7/0whFqkJgyPWDO+v
 /1VXYMwMjy2zpWfPGPu+/fQL0Ninp+EfLP3Y2/Lr8VW5rH21bfuQ1rm41ucK/jB5
 IsMiQ+YObZUTrSq22fHfNJKc8fysSqeMHW96bl0QnJxf6aDDieZFGF9rlRQf/faq
 lPux0faasgQC0VgXlokWGdU1x5kXIf3Ta4VtiKARKNwxziuG8B484+5hHXvoBR1h
 bXFJJUQjQs2qBuH75BJftini9fvWvQPgbk4NvkD1tlyMhlZ5w2MTTKB4QmuW/WDT
 OGuGXAcuP2stm0dUaSn1aCwzfYgtihssp+RCAB5DOoL64i/CtHl+FJgz8wZfDPRk
 UNXdK2JccDfD6bGv/kQqPJoozjI5e8Ha2ks1O4IPHIDpIsVMIWRRGULgIRvLaHaS
 iaR7Vx+XgzW50Knj++S85eak/aTSkVaykYZIiiB4DTai1/XuAZfMA79X6IvQLxHq
 419FHmXwhJmYdWZ/JFBXWnbR6wRJiv4TR23A5u8X6o/YgBn6fmwAt6o8Avk1quZQ
 mslRPHG45hM/7Z7uSEsIQnbVVnHPhbaKr3GmHlJJ4zXRI8GaSMe23wpnJdUj1q9a
 w1Oe0rpq
 =2l/n
 -----END PGP SIGNATURE-----

Merge tag 'kvmarm-fixes-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD

KVM/arm64 fixes for 6.2, take #3

- Yet another fix for non-CPU accesses to the memory backing
  the VGICv3 subsystem

- A set of fixes for the setlftest checking for the S1PTW
  behaviour after the fix that went in ealier in the cycle
2023-02-04 08:57:43 -05:00
Ard Biesheuvel
cf1d2ffcc6 efi: Discover BTI support in runtime services regions
Add the generic plumbing to detect whether or not the runtime code
regions were constructed with BTI/IBT landing pads by the firmware,
permitting the OS to enable enforcement when mapping these regions into
the OS's address space.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
2023-02-04 09:19:02 +01:00
Rajendra Nayak
f816cda0ab arm64: dts: qcom: sc7280: Add a herobrine CRD Pro SKU
Some of the qualcomm qcard based herobrine devices can come with
a Pro variant of the chipset on the qcard. Such Pro qcards have
the smps9 from pm8350c ganged up with smps7 and smps8, so add a
.dtsi for pro skus that deletes the smps9 node and include it from
the new dts for the CRD Pro

Signed-off-by: Rajendra Nayak <quic_rjendra@quicinc.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20221216112918.1243-2-quic_rjendra@quicinc.com
2023-02-03 15:25:32 -08:00
Konrad Dybcio
e27f38e625 arm64: dts: qcom: sm8450-nagara: Correct firmware paths
Nagara is definitely not SM8350, fix it!

Fixes: c53532f782 ("arm64: dts: qcom: pdx223: correct firmware paths")
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230203142309.1106349-1-konrad.dybcio@linaro.org
2023-02-03 12:37:32 -08:00
Chen-Yu Tsai
97801cfcf9
arm64: dts: mediatek: mt8195: Fix vdosys* compatible strings
When vdosys1 was initially added, it was incorrectly assumed to be
compatible with vdosys0, and thus both had the same mt8195-mmsys
compatible attached.

This has since been corrected in commit b237efd47d ("dt-bindings:
arm: mediatek: mmsys: change compatible for MT8195") and commit
82219cfbef ("dt-bindings: arm: mediatek: mmsys: add vdosys1 compatible
for MT8195"). The device tree needs to be fixed as well, otherwise
the vdosys1 block fails to work, and causes its dependent power domain
controller to not work either.

Change the compatible string of vdosys1 to "mediatek,mt8195-vdosys1".
While at it, also add the new "mediatek,mt8195-vdosys0" compatible to
vdosys0.

Fixes: 6aa5b46d17 ("arm64: dts: mt8195: Add vdosys and vppsys clock nodes")
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Tested-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Acked-by: Matthias Brugger <matthias.bgg@gmail.com>
Link: https://lore.kernel.org/r/20230202104014.2931517-1-wenst@chromium.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-03 14:19:53 +01:00
Arnd Bergmann
07975ef0fa Fixes to adapt to correct binding behaviour and fixes for devices on some boards
Most notably may be the adaption of lower thermal limits for the pinephone
 pro, where the original hiher ones could result in (possibly permanent)
 display issues.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmPapWIQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgVu4CACD6VNbu005k/Ot8wN3jIzJPicgz9Z6QfSM
 xH0OBYQ037O833wGJYKosQT+azQaUrzMVRrO2hPhdAKR8OXbD4m5k7EySQzNgsNT
 bG1ONkBD+ZLT04K3aYL+lg/ty0UE88/GeVMG/CP7tuCNkvvel5Gqt9WLDeNOC5Md
 oPrkGP+SGT97A6QSkjTTwphlaze7zBBMPVPR2buJRaKrRFrwoTERE7zglZ/9ZFaJ
 gB5o+y1fjTUKtD9fFZ0ch7yHHx3T5GIh1Lzxm+wpfMwsFOwl9k4PGN0dS/pu93gm
 zYY535P/gUY8gzsb8rde+kFVEvAF4PIJBMjVkKfHNGfDG6YSWO+T
 =qX0n
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPdCbEACgkQmmx57+YA
 GNlyKBAAojNNEBz3h/2hUTI9atcR6TgACw4YFSGeuQhua0b952wHIds1ugt10qas
 O063c4rqUJnBOjhFvxJ8zdpmN0+/8byjneZsQGKX0tV8QgRHuL2cWEDqMNpd74cm
 x2oBlctKImkaDISR4xRBNVzdiYWKQ4KogjMKOeWC2gObPPK4LQ9/gEcJIxo4sWy6
 3yA+K8gjOurnnOqOuU+f3XfY0kEdLgEtZn5ii8T26tj/RR7Q3qxoGh0YWRfQoSLE
 uw1TSBQDTCPM+6gudIs1WUWeSm0plSGHtY7srrpzvdfoRq9l3y7VFlD+cyNP1luF
 N+X2ytZyDlowC4EUHORoF7wBzT9QnfwAa5EY9+QHnh4wE6lyhfSxGWCzVMHHY7pq
 7SkaUTgaItrWgDt0neXu3gpcVLvNkRONbmYGttG1oot+rQgnk9hYMovDKknMu+2w
 jrmsrdBYj2fFckIEPd1gJ3Ws5oMubavvYZuh1NI8r+S4EC8pbaKxFN51gsfdE53s
 1mmhvFLm6cQ1IxPSllpiAD+JRVFCHfMH+k2hDY3VjyEIcXcSdK+unPH/iLtSa+fi
 6EIybQ0iYmMeHBTzUAAEv6qLgN17OzIPUDlWG8xH/b2fAe2nBlFVWQjKJbbZ1wsa
 Wsa41bGba9QFK0HoHafzpA3xqy1KpgHiXVa4ZDWIfgAEf+ta6hM=
 =5IlC
 -----END PGP SIGNATURE-----

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

Fixes to adapt to correct binding behaviour and fixes for devices on some boards

Most notably may be the adaption of lower thermal limits for the pinephone
pro, where the original hiher ones could result in (possibly permanent)
display issues.

* tag 'v6.2-rockchip-dtsfixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  arm64: dts: rockchip: align rk3399 DMC OPP table with bindings
  arm64: dts: rockchip: set sdmmc0 speed to sd-uhs-sdr50 on rock-3a
  arm64: dts: rockchip: fix probe of analog sound card on rock-3a
  arm64: dts: rockchip: add missing #interrupt-cells to rk356x pcie2x1
  arm64: dts: rockchip: fix input enable pinconf on rk3399
  ARM: dts: rockchip: add power-domains property to dp node on rk3288
  arm64: dts: rockchip: add io domain setting to rk3566-box-demo
  arm64: dts: rockchip: remove unsupported property from sdmmc2 for rock-3a
  arm64: dts: rockchip: drop unused LED mode property from rk3328-roc-cc
  arm64: dts: rockchip: reduce thermal limits on rk3399-pinephone-pro
  arm64: dts: rockchip: use correct reset names for rk3399 crypto nodes

Link: https://lore.kernel.org/r/3514663.mvXUDI8C0e@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-03 14:18:41 +01:00
Arnd Bergmann
3e47c0dfc7 mvebu dt64 for 6.3 (part 1)
Do not use anymore "marvell,armada3710" compatible string for the
 Armada 3720 boards.
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCY9vWYwAKCRALBhiOFHI7
 1f9gAJ9Tf8qcA0sTnJLCO1VPz+VUIB3/2QCgqApD3HzDY7r/2uzc4q6kqWqVAaE=
 =zT7+
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPdCKwACgkQmmx57+YA
 GNl5hQ/8DswRn0PMbLm3owJPSPSnEZYqtA8YGeuDZxtADWtSdjIuawXjCcUeVAZ6
 zSsnTqDz9tWwO0yOumgVrHfSeEQqSP6WCZTRyEqDFKmFvLhXJn/e/nnD35pjTELH
 jeK26hcASX9No+gtw+SLIpQ3VRfj5XmWh6JdU7yZT0VBK1SFkMjDOQgyMpQ+sfQv
 49Y9OQG4fO+GuzJqNJcf+0Ck5HI/u1RVEKtcFyhNpFcI8cKoWBVee89BJ1MYn9Mw
 M3190A1+UO8vyLXo/w9Ecm8XZlK6iHJDk8mQzX/nUoXSERcZF/gjAlNxef/BxK2s
 TPkBkUTfp/P2zPQSpRmC6IonLM+bJ9tt0wZLUhP4qetiJNNG20AGal8DeD/uy7nV
 btUggmjxx+mbJIabUasobufnqlZSvrpj2RSzNdrtB8ZrOuerqsIKA9Fu46AjQFT5
 tjOQLs05PSG3nx7k6X28gE4KYCL9SZaK+SWxDmqPdNkwmhBLN9Ye9ytLW4L+CJBv
 cmSpPfQ/qDetFuaSPyUiyy99Bee2XGF0V1cXvfRR7oQe5iXTFza+S6ywnyTcLaxB
 ww9+thNMK+ZvhHSt3rFVo6SumUGIltE9OzHbubtzuekAlUsG4I9skukWHOXlJmnf
 iYGx2MNIzWI7dQe8QnyAlTE2MVmWx162Jsk7dADpcChtWSvieB4=
 =oCeE
 -----END PGP SIGNATURE-----

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

mvebu dt64 for 6.3 (part 1)

Do not use anymore "marvell,armada3710" compatible string for the
Armada 3720 boards.

* tag 'mvebu-dt64-6.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  arm64: dts: marvell: Fix compatible strings for Armada 3720 boards

Link: https://lore.kernel.org/r/87zg9w9j6l.fsf@BL-laptop
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-03 14:14:20 +01:00
Arnd Bergmann
84afaf4e37 New SoC supported is the rk3588.
New boards rk3588-evb1, EmbedFire Lubancat 1+2 (based on different SoCs),
 a number of Radxa boards (rock-5a and -5b, compute module 3, cm3i e25),
 OrangePi R1 plus and the Edgeble Neu6 SoM and baseboard.
 
 A number of improvements for the Odroid Go (and its clones) including
 touchscreen and display support, led and audio changes.
 
 As well as some improvements for the rk356x, better gpu thermal values for
 px30 and some minor improvement for rock3a, rock5a, rk3566-demo,
 roc-rk3399-pc and bi-r2pro.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmPatMIQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgVOAB/4tGUPXZQ/M4UV3NBOP5x0Btpk93MbhPl3m
 i1jINiYawlh3hbVwrE5mnbtt/eZSUyMeAoBerv/aliUrk6EIGanl1MzDjXomv+BH
 0ljl0sxCjMpNcQ+/GSMzLI225ZqtK3dLClgioaq6/hL9rnK4gSDngbHWAqfEdWLk
 hbK52w90ovWcvcgStASUycPfj1RXjQnBbrt6K8BejhGhzln/B74dKy2k0v5QoG1F
 /y/JJMTpHPXi1Sd/1/dFYipkTTjKLs6tkPUl7exh3FBjuOWanBTzKDIF1sbEOPXZ
 sOW7T4sA672kmUtDcLuTtt7ENJzF/rWTiKvpl0LhjrsO1Jy7n1pn
 =egzW
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPdB58ACgkQmmx57+YA
 GNmybA//dHOinmBxBDE4hO/1rm6/T6EOwaSIVKK6Vkla5tBIUXw9GgTYfrfj9/u9
 ZPdEqD8QXLSBR7LtV5X/qYrAQaCqplo5JFD5etx8yMUDtxnOLbqjfUul3+/2Q/PB
 BGJbhU8DcfTEsuvW02kiOg7a2WMm34PF0NsbSYxpdL2xPfkSNUaYZ9DTsh18b3sH
 rStIT91CnbzVkfQcsjx2QnwBaEahe/Mo7mZuPRU+10hhE6blcJyFsOdSZ/9znL80
 DHvCgiKI5o1tnatjsiJUVKxYOoErTfBzWWmJzBovJ5DDUenifEKXKGHDYdt4Wj9g
 WVif+Ymz1F9SjoEicHE4RXBN5UZPCGaGLHa3ENC+iEOlApaggduvpIjikp5AMfK/
 BLulkCrRU+06A0dNBTCps9HRwf8heYar5TV7EV6KmCscmkSHFssJXkBIwH0Pt+sm
 HKxQxvQ3O6IKg/Jutbw4P4VDk6GfX0TA7ERBveE/owY7pcbE+mK7531/IFOFdJPh
 bsnbTYAktoI+sX5Spfq0U88WQ0eo7qFnO+l/p51vV1T89wSiWeE6WYib6U5LkCgR
 ZMibp8BFH3fL7orxzQTaHAOsAHcuwrRrJVmIiziR8h71mvdkMfb23AGwlBeGTguh
 EAUa+zyjS3QutNjhi8dcf1JHJvP4qFRAW/X3u/qxJOH/W74WW9U=
 =oLg+
 -----END PGP SIGNATURE-----

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

New SoC supported is the rk3588.

New boards rk3588-evb1, EmbedFire Lubancat 1+2 (based on different SoCs),
a number of Radxa boards (rock-5a and -5b, compute module 3, cm3i e25),
OrangePi R1 plus and the Edgeble Neu6 SoM and baseboard.

A number of improvements for the Odroid Go (and its clones) including
touchscreen and display support, led and audio changes.

As well as some improvements for the rk356x, better gpu thermal values for
px30 and some minor improvement for rock3a, rock5a, rk3566-demo,
roc-rk3399-pc and bi-r2pro.

* tag 'v6.3-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (46 commits)
  arm64: dts: rockchip: Correct the model name for Radxa E25
  arm64: dts: rockchip: Drop unneeded model for Radxa CM3i
  arm64: dts: rockchip: Add missing CM3i fallback compatible for Radxa E25
  arm64: dts: rockchip: Fix compatible for Radxa CM3
  arm64: dts: rockchip: rk3566: Enable WiFi, BT support for Radxa CM3
  arm64: dts: rockchip: Enable Ethernet for Radxa CM3 IO
  arm64: dts: rockchip: add display to RG503
  arm64: dts: rockchip: add pinctrls for 16-bit/18-bit rgb interface to rk356x
  arm64: dts: rockchip: Update eMMC, SD aliases for Radxa SBC boards
  arm64: dts: rockchip: Update eMMC, SD aliases for Radxa SoM boards
  arm64: dts: rockchip: Add Radxa Compute Module 3 IO board
  arm64: dts: rockchip: Add rk3566 based Radxa Compute Module 3
  dt-bindings: arm: rockchip: Add Radxa Compute Module 3
  arm64: dts: rockchip: Fix RX delay for ethernet phy on rk3588s-rock5a
  arm64: dts: rockchip: add Hynitron cst340 for Anbernic 353 series
  arm64: dts: rockchip: Enable wifi module AP6398s for rk3566 box demo
  arm64: dts: rockchip: rk3588: Add Edgeble Neu6 Model A IO
  arm64: dts: rockchip: rk3588: Add Edgeble Neu6 Model A SoM
  arm64: dts: rockchip: fix hdmi cec on rock-3a
  arm64: dts: rockchip: assign rate to clk_rtc_32k on rk356x
  ...

Link: https://lore.kernel.org/r/6491956.DvuYhMxLoT@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-03 14:09:51 +01:00
Arnd Bergmann
79668653e7 mt7986:
- add USB host support
 - add support for mmc, pcie
 - add support for Bananpi R3
 
 mt8173:
 - switch to SMC watchdog for Acer Chromebook R13
 - move panel under aux bus
 
 mt8183:
 - support detachable keyboards on kukui based Chromebooks
 - describe 13 MHz clock correctly
 - complete CPU cache information
 
 mt8186:
 - Add pm-domains, iommu, dsi
 - describe 13 MHz clock correctly
 - complete CPU cache information
 - add crypto support for the eMMC
 - add audio controler, DPI and ADSP mailbox support
 - describe CPUs as a single cluster
 
 mt8192:
 - describe 13 MHz clock correctly
 - complete CPU cache information
 - enable display regulators, backlight, internal display and audio on
   Acer Chromebook 514
 - describe CPUs as a single cluster
 
 mt8195:
 - Add power domain to t-phy
 - describe 13 MHz clock correctly
 - complete CPU cache information
 - enable audio for Acer Chromebook Spin 513
 - add ethernet support for the demo board
 - add JPG enconder and decoder device
 - describe CPUs as a single cluster
 
 Smaller changes for mt6795, mt7622, mt8516 and mt6358.
 -----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEUdvKHhzqrUYPB/u8L21+TfbCqH4FAmPap2UXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQL21+TfbCqH70HxAAjyCpnvMxIXKenuK1Zy7ygGyS
 gZKtJiYcwZYnAOWCeE4X2DqBNEt4OZy0nS21a13CzvjxJ/c13S2TF5tfeSwWKfi6
 EtrOs3TUaEFp06SvwUbnHJ19wBtYqLrYSTPT3aM4MevPoYWHXF88qipQqkQN2NOu
 6UhpFQrV3Q+AL2BbPDqqbO0W61ZkjDJGserixJ5s7nyaPpLtRmA9FAtb95J1Hw6V
 iANSVMcqFETYyjs7wxQ2qqA03ZIclqccPpzpBMhPMzY1X6iU5C4W+t/5SbtChAQ+
 cQrGOcQm8ewrcOy2YprBtbPqINURANBLA6nJhR+qnS0bp6afXgG9y5iVxt1xLpUc
 nyvCAqy2Rpsr4jOM14dLabNr5k9bCwosufl7tcJ8P8QZqUb+NTUcfGz5RKnBgwCB
 C9shrM73TbjlKJXR9mWVCpORFmcO4wc73M588pgRtjV5AAozMYR9307gi/uDBylV
 FaTWDzGKr1ZdqhskCNAQ7dZTTSKcnNheklX/1KvZoNJ+pil1NTONGZ+4zzdfB/cZ
 j5WwrJ1Yno/YpCwq+4vb1+Ggur8RONPGXd8nFFO/GqPY3TGMoE3FP99jwhMhBxCm
 CyhRMq5wySs5PdYbRPLapQiqd1aeCOHDk+q/NEFeWwdia6Ms7ytzQ0zi4+i5jeqc
 55W7lPjF5WzHEBSr/C8=
 =UCgz
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPdBuMACgkQmmx57+YA
 GNlcxg//fTuPZ65yWE5HC1i09JpVCrQsXAi6vdFyLflrB7mf7L9tNT5524CHh910
 bdWVShdCztfuajWeGX+CD46xkzdwgRLgClCtA2tSPN2tG47Am7GeKew3LZLBBVgY
 mGCwUp0SAg6HFWUvvQ0jheT1f9Enc5Pgbhtc2TITNxwp2HiGym/U6bH/KTElsx1g
 TdA/HS/jSQLWH2f6u8z4cuu/XOufwF5PhtfUfX8NFBUvqQuIxf5Db70ZFNT0t0Bu
 1anXSxWmaJbXmJn+uz4L/Ya52XdeDbyIAusIFK9fA0RzOhZ/UoNavFAjEJhD4Gt2
 dcXvdWszhjIrnRcI1Alfx2BCzEl+1XTNrITIP85fG1HQUBsVFQmKM6xmtuzxDP3F
 u0svkPMF90m5sDRtnlRp27tBunKp12nf6hKO5sUkG9ysZrhK52ZzUISsNKtrIDyO
 SzZXnqYxJUnXNE4Xgdw2aVbJ8h1KwQPsa/D9aIqSyFQA2lH9XJT2s7jADMynHy5Z
 cG9vNiR/yOErinx07A3doBNHhqJv5Ghmaq/q26ogJUhWI1sRVVTYcI7w6UA6JUr+
 A8W1Bx83DNHViJlFy5nWi0c+D08oLv2LZvbNsJ8pOaMDoAEm7gKf+Sxv3yFVSc5G
 gEvtVo/6lEU16r2yzobiNs1NA1pFB9s2rWmmgXkofAwo4ofSxA0=
 =75+D
 -----END PGP SIGNATURE-----

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

mt7986:
- add USB host support
- add support for mmc, pcie
- add support for Bananpi R3

mt8173:
- switch to SMC watchdog for Acer Chromebook R13
- move panel under aux bus

mt8183:
- support detachable keyboards on kukui based Chromebooks
- describe 13 MHz clock correctly
- complete CPU cache information

mt8186:
- Add pm-domains, iommu, dsi
- describe 13 MHz clock correctly
- complete CPU cache information
- add crypto support for the eMMC
- add audio controler, DPI and ADSP mailbox support
- describe CPUs as a single cluster

mt8192:
- describe 13 MHz clock correctly
- complete CPU cache information
- enable display regulators, backlight, internal display and audio on
  Acer Chromebook 514
- describe CPUs as a single cluster

mt8195:
- Add power domain to t-phy
- describe 13 MHz clock correctly
- complete CPU cache information
- enable audio for Acer Chromebook Spin 513
- add ethernet support for the demo board
- add JPG enconder and decoder device
- describe CPUs as a single cluster

Smaller changes for mt6795, mt7622, mt8516 and mt6358.

* tag 'v6.2-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: (58 commits)
  arm64: dts: mediatek: mt8516: Fix the watchdog node name
  arm64: dts: mediatek: mt7986: Fix watchdog compatible
  arm64: dts: mediatek: mt8195: Fix watchdog compatible
  arm64: dts: mediatek: mt8186: Fix watchdog compatible
  arm64: dts: mt8173-elm: Switch to SMC watchdog
  arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
  arm64: dts: mt8192: Change idle states names to reflect actual function
  arm64: dts: mt8186: Change idle states names to reflect actual function
  arm64: dts: mt8195: Change idle states names to reflect actual function
  arm64: dts: mt8186: Fix CPU map for single-cluster SoC
  arm64: dts: mt8192: Fix CPU map for single-cluster SoC
  arm64: dts: mt8195: Fix CPU map for single-cluster SoC
  arm64: dts: mt8195: add jpeg decode device node
  arm64: dts: mt8195: add jpeg encode device node
  arm64: dts: mediatek: mt8183: drop double interrupts
  arm64: dts: mediatek: mt7622: drop serial clock-names
  arm64: dts: mt8195: Add efuse node to mt8195
  arm64: dts: mt8183: jacuzzi: Move panel under aux-bus
  arm64: dts: mediatek: mt8173-elm: Move display to ps8640 auxiliary bus
  arm64: dts: mt8195: Add Ethernet controller
  ...

Link: https://lore.kernel.org/r/2eefe6d4-6ca3-dc5f-6a04-f4f3c49692dd@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-03 14:06:43 +01:00
Matthew Wilcox (Oracle)
6bc56a4d85 mm: add vma_alloc_zeroed_movable_folio()
Replace alloc_zeroed_user_highpage_movable().  The main difference is
returning a folio containing a single page instead of returning the page,
but take the opportunity to rename the function to match other allocation
functions a little better and rewrite the documentation to place more
emphasis on the zeroing rather than the highmem aspect.

Link: https://lkml.kernel.org/r/20230116191813.2145215-2-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-02-02 22:33:18 -08:00
David Hildenbrand
950fe885a8 mm: remove __HAVE_ARCH_PTE_SWP_EXCLUSIVE
__HAVE_ARCH_PTE_SWP_EXCLUSIVE is now supported by all architectures that
support swp PTEs, so let's drop it.

Link: https://lkml.kernel.org/r/20230113171026.582290-27-david@redhat.com
Signed-off-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2023-02-02 22:33:11 -08:00
Jakub Kicinski
82b4a9412b Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
net/core/gro.c
  7d2c89b325 ("skb: Do mix page pool and page referenced frags in GRO")
  b1a78b9b98 ("net: add support for ipv4 big tcp")
https://lore.kernel.org/all/20230203094454.5766f160@canb.auug.org.au/

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-02-02 14:49:55 -08:00
Quentin Perret
6f10f2ec61 KVM: arm64: Finalise EL2 state from pKVM PSCI relay
The EL2 state is not initialised correctly when a CPU comes out of
CPU_{SUSPEND,OFF} as the finalise_el2 function is not being called.
Let's directly call finalise_el2_state from this path to solve the
issue.

Fixes: 504ee23611 ("arm64: Add the arm64.nosve command line option")
Signed-off-by: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20230201103755.1398086-5-qperret@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-02 21:46:43 +00:00
Quentin Perret
3c4cc31537 KVM: arm64: Use sanitized values in __check_override in nVHE
The nVHE EL2 code has access to sanitized values of certain idregs, so
use them directly from __check_override instead of the *_override
variants.

Signed-off-by: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20230201103755.1398086-4-qperret@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-02 21:46:43 +00:00
Quentin Perret
e2d4f5ae17 KVM: arm64: Introduce finalise_el2_state macro
Factor out the first half of the finalise_el2 function into a macro to
allow its reuse from the nVHE PSCI relay code. While at it, make the
register allocation parametric for the check_override macros as they are
now more widely exposed.

No functional changes intended.

Signed-off-by: Quentin Perret <qperret@google.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230201103755.1398086-3-qperret@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-02 21:46:43 +00:00
Quentin Perret
8669651ce0 KVM: arm64: Provide sanitized SYS_ID_AA64SMFR0_EL1 to nVHE
We will need a sanitized copy of SYS_ID_AA64SMFR0_EL1 from the nVHE EL2
code shortly, so make sure to provide it with a copy.

Signed-off-by: Quentin Perret <qperret@google.com>
Acked-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230201103755.1398086-2-qperret@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
2023-02-02 21:46:43 +00:00
Linus Torvalds
42c78a5b29 ARM: SoC fixes for 6.2, part 3
The majority of bugfixes is once more for the NXP i.MX platform,
 addressing issue with i.MX8M (UART, watchdog and ethernet) as well as
 imx8dxl power button and the USB modem on an imx7 board. The reason that
 i.MX always shows up here is obviously not that they are more buggy than
 the others, but they have the most boards and are good about getting
 fixes in quickly.
 
 The other DT fixes are for the Nuvoton wpcm450 flash controller and
 the i2c mux on an ASpeed board.
 
 Lastly, there are updates to the MAINTAINERS entries for Mediatek,
 AMD/Seattle and NXP SoCs, as well as a lone code fix for error
 handling in the allwinner "rsb" bus driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPcImEACgkQmmx57+YA
 GNmrzBAAtLZ1yiU8umESbjjJSH7tuzEf3XOJuOTT+aLi6AlFd91TbALriPaaATrX
 Gs/QTi0wrOamWEurKjJDIADISp0UGIZOQOZRI8QWRaJbSWsXHDk7Ja0IUOdNOi4x
 45djdWLPQV8vmbF4RXtF74hNf3JE1bGlFVfaltrP6my0LGViRPwaVXOcdRLcwCzU
 mrkxxlFECmXaQ1cmBVmwlp/Gq9grYYFem6/XJvc//X42lJT83hFdQ5bP238AjW1m
 ESaSVvXE8LVZ1MzDSGLoUaFTWPwm3rcYR4VImoLUxIIqTJ4d5wXHfwi2attzFiWD
 21qpWJr2Yjv0SfT5RfdqhzUUPtVwr2ZuQObG9RSFM4UvQ7D+49JXDnH65tn2UF3G
 qPh8yob3e0ankq5OFjpkSf8IOpwFxCdS1n2mIB0wMY8tyKMqFtLJX7oqnc2qABpC
 sYePvgQN/yj43yizvHscP0GBmEnA568tlZ/e1oo9sbJJHx2/cYufpvfWcQ4ekj+d
 21J6bkILbOB+P2/zj/qnJTElfEbLImBKxPKVTORP1Eb13p3jqw+gWSnkkgdO5g+w
 0BMTZkjAUqdEpBoGUemzl7JvBZxeVJ17O0BTvfhbAjkBwn/eFNfIOYYx7Ihs4BAV
 HlnX4ZKX9tiJwuQUHc7mQpsJkechuXpZgzibR6nlNICGc0+lgeQ=
 =xaPs
 -----END PGP SIGNATURE-----

Merge tag 'soc-fixes-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARM SoC fixes from Arnd Bergmann:
 "The majority of bugfixes is once more for the NXP i.MX platform,
  addressing issue with i.MX8M (UART, watchdog and ethernet) as well as
  imx8dxl power button and the USB modem on an imx7 board.

  The reason that i.MX always shows up here is obviously not that they
  are more buggy than the others, but they have the most boards and are
  good about getting fixes in quickly.

  The other DT fixes are for the Nuvoton wpcm450 flash controller and
  the i2c mux on an ASpeed board.

  Lastly, there are updates to the MAINTAINERS entries for Mediatek,
  AMD/Seattle and NXP SoCs, as well as a lone code fix for error
  handling in the allwinner 'rsb' bus driver"

* tag 'soc-fixes-6.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
  ARM: dts: wpcm450: Add nuvoton,shm = <&shm> to FIU node
  MAINTAINERS: Update entry for MediaTek SoC support
  MAINTAINERS: amd: drop inactive Brijesh Singh
  ARM: dts: imx7d-smegw01: Fix USB host over-current polarity
  arm64: dts: imx8mm-verdin: Do not power down eth-phy
  MAINTAINERS: match freescale ARM64 DT directory in i.MX entry
  arm64: dts: imx8mm: Fix pad control for UART1_DTE_RX
  ARM: dts: aspeed: Fix pca9849 compatible
  arm64: dts: freescale: imx8dxl: fix sc_pwrkey's property name linux,keycode
  arm64: dts: imx8m-venice: Remove incorrect 'uart-has-rtscts'
  arm64: dts: imx8mm: Reinstate GPIO watchdog always-running property on eDM SBC
  bus: sunxi-rsb: Fix error handling in sunxi_rsb_init()
2023-02-02 13:02:45 -08:00
Arnd Bergmann
40445d093e Enable config options needed to boot mt8192 based Chromebooks
-----BEGIN PGP SIGNATURE-----
 
 iQJLBAABCAA1FiEEUdvKHhzqrUYPB/u8L21+TfbCqH4FAmPam0wXHG1hdHRoaWFz
 LmJnZ0BnbWFpbC5jb20ACgkQL21+TfbCqH6aTA//etc9PKXkm5acQx5+wjGh7NY/
 Qll3HKGYKnKQ/EQdXQ9NKHKx5btUvfSkfRzDae98XlJ1i/yzKgFEkqTjAlYTo86I
 n4gLK0B/pfNQC8KHjQtaj2lFzqzIN9ERhePWHAXlD7Ftf1t1o184WHDMEvNcjND1
 8aMfLpfbJ2zPF25AWYVH9sixtYd06CM6YkKzDPXLQI05MxUmCpe82zpZ1CxfYYrL
 T6nm1BY27Mw3p1zE7w/nV+CDlrKdQzz2Q+E3jJRJigghqDUaoDe4/aiUBd/5uCdg
 3FRCQROXw+KHKwjoAXc+A2FgOgYgfgNEzBPmRFubWVIQVxWOnDUTa//SCFu9oIXQ
 ygXawOLMyojKrI9tum2w7yPqcOwrJ5yAFqmZLEMZRWb3fxOUr9B6+lm+QzZGtQ4x
 DoCKLBeNCbJ15vMoVxW3RTQA054oIYCZdLHhzYGuT0sc6NMlcv+mbjhha71YHO8S
 vy0fAcLO/ucPiCv3VpH96uNj/yY2xFtlDylfT6vfT9FX5IpZt700PsCBfDioWhUi
 CONEPzFa0UjK+hyFAysthFkb05+ER0Q6FScdcGhqtLgxp5FXrPT85shLvVSys7y2
 MYln8ETRFYTa/2UugNN+bHbbeSQkZAEg0M3x0iACkX+GDsqnVDu8iSz4n38RmAPC
 BSlE+ceYq2P5k3KUkVA=
 =nnwM
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPbr0EACgkQmmx57+YA
 GNkMIA//UlFQG4VByXCVefrlzPINuPzFnNmGEgijI7C2uMJb9kmPr2LPyvizYzEC
 Zg5enC6othf1A7l7NAbzQ9V4HN+Da8NRPhpv7CyYttCudOLz/Qg0fXSKu62R2ouH
 m6zuKH3Oc5Nt+rEY5nmODf1zBHBoB1vqPdCTD5Sef0HHlldsj5HnEEiXAz+RSvOf
 EVZsJmSdMc34jJ/TXDROHCr3c1czdGoDGhfRH2UofpmYo/Ua3TXvKA1g0cPmF69e
 UEOEPHdoeaG7uAGN2YacjkrArLb/GnAiY+bAYRPIQ4dvhw2b44FfFLaY7wB9up/F
 fbRuZJx/n9HIEiRpcZTQopbRV/491DV629bnKfzGtaXRGnhQw1rsQFNvzr1rYdit
 ncIUl9dHGVBhz9AuVxlDeWqggik0aFRbBpVMNuaAnJ5f1/cRymhRXujvx3NnkZye
 moyrFRQqXNdZZuN4eClJroQGyr3U3m0ePudypWcGTW/bFCaFOGe8YVW7DkjJOo1N
 tPW1E5jLqMJMY8+xOR1hS7fG2o8bQIQbl2UrVmNDCVCS4WMV2HZx0VTgMcbgXJdM
 A87D0C4PtdeD/yDn7Sl9FzsLcQhRvjvXftGVokZJQCdB4nRT6CUIHbWOrzN+Fq2f
 UB6RjERTvCfNKYWdK8VOHPa5Az7ax6rRQHLDQa3JMMRjioWDWn4=
 =B9c3
 -----END PGP SIGNATURE-----

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

Enable config options needed to boot mt8192 based Chromebooks

* tag 'v6.2-next-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux:
  arm64: defconfig: Enable DMA_RESTRICTED_POOL
  arm64: defconfig: Enable missing configs for mt8192-asurada

Link: https://lore.kernel.org/r/2330b914-8a8e-8bf3-e98e-88d713c5224d@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-02 13:40:33 +01:00
Jon Hunter
1f6d59f7f8 arm64: defconfig: Enable UCSI support
Enable the TYPEC UCSI support and the Cypress UCSI driver that is used
on the NVIDIA Jetson platforms.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Link: https://lore.kernel.org/r/20230131175748.256423-7-jonathanh@nvidia.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-02-02 11:15:39 +01:00
Mark Brown
ad678be423 arm64/signal: Only read new data when parsing the ZT context
When we parse the ZT signal context we read the entire context from
userspace, including the generic signal context header which was already
read by parse_user_sigframe() and padding bytes that we ignore. Avoid the
possibility of relying on the second read of the data read twice by only
reading the data which we are actually going to use.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-7-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Mark Brown
24d68345a0 arm64/signal: Only read new data when parsing the ZA context
When we parse the ZA signal context we read the entire context from
userspace, including the generic signal context header which was already
read by parse_user_sigframe() and padding bytes that we ignore. Avoid the
possibility of relying on the second read of the data read twice by only
reading the data which we are actually going to use.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-6-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Mark Brown
f3ac48aa3a arm64/signal: Only read new data when parsing the SVE context
When we parse the SVE signal context we read the entire context from
userspace, including the generic signal context header which was already
read by parse_user_sigframe() and padding bytes that we ignore. Avoid the
possibility of relying on the second read of the data read twice by only
reading the data which we are actually going to use.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-5-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Mark Brown
b57682b315 arm64/signal: Avoid rereading context frame sizes
We need to read the sizes of the signal context frames as part of parsing
the overall signal context in parse_user_sigframe(). In the cases where we
defer frame specific parsing to other functions those functions (other
than the recently added TPIDR2 parser) reread the size and validate the
version they read, opening the possibility that the value may change.
Avoid this possibility by passing the size read in parse_user_sigframe()
through user_ctxs and referring to that.

For consistency we move the size check for the TPIDR2 context into the
TPIDR2 parsing function.

Note that for SVE, ZA and ZT contexts we still read the size again but
after this change we no longer use the value, further changes will avoid
the read.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-4-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Mark Brown
4e4e93045f arm64/signal: Make interface for restore_fpsimd_context() consistent
Instead of taking a pointer to struct user_ctxs like the other two
restore_blah_context() functions the FPSIMD function takes a pointer to the
user struct it should read. Change it to be consistent with the rest, both
for consistency and to prepare for changes which avoid rereading data that
has already been read by the core parsing code.

There should be no functional change from this patch.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-3-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Mark Brown
0eb23720f2 arm64/signal: Remove redundant size validation from parse_user_sigframe()
There is some minimal size validation in parse_user_sigframe() however
all of the individual parsing functions perform frame specific validation
of the sizing information, remove the frame specific size checks in the
core so that there isn't any confusion about what we validate for size.

Since the checks in the SVE and ZA parsing are after we have read the
relevant context and since they won't report an error if the frame is
undersized they are adjusted to check for this before doing anything else.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-2-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Mark Brown
92f14518cc arm64/signal: Don't redundantly verify FPSIMD magic
We validate that the magic in the struct fpsimd_context is correct in
restore_fpsimd_context() but this is redundant since parse_user_sigframe()
uses this magic to decide to call the function in the first place. Remove
the extra validation.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221212-arm64-signal-cleanup-v3-1-4545c94b20ff@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:56:47 +00:00
Catalin Marinas
ea776e4932 Merge branches 'for-next/tpidr2' and 'for-next/sme2' into for-next/signal
Patches on this branch depend on the branches merged above.
2023-02-01 17:55:29 +00:00
Mark Brown
bfffd469e5 arm64/cpufeature: Use helper macros to specify hwcaps
At present the hwcaps are hard to read and a bit error prone since the
macros used to specify matches require us to write out the register name
multiple times and explicitly specify the width of the field, hopefully
using the correct constant. Now that all the ID registers are generated we
can improve this somewhat by redoing the macros so that we specify the
register, field and minimum value symbolically and use token pasting to
initialise the capability struct with the appropriate values.

We move from specifying like this:

      HWCAP_CAP(SYS_ID_AA64PFR1_EL1, ID_AA64PFR1_EL1_BT_SHIFT, 4, FTR_UNSIGNED, ID_AA64PFR1_EL1_BT_IMP, CAP_HWCAP, KERNEL_HWCAP_BTI),

to this:

      HWCAP_CAP(ID_AA64PFR1_EL1, BT, IMP, CAP_HWCAP, KERNEL_HWCAP_BTI),

which is shorter due to having less duplicate information and makes it
much harder to make an error like specifying the wrong field width or
an invalid enumeration value since everything must be a constant defined
for the sysreg and names are only typed once.

There should be no functional effect from this change, a check of the
generated .rodata showed no differences.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221207-arm64-sysreg-helpers-v4-5-25b6b3fb9d18@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:51:19 +00:00
Mark Brown
82c5acefc9 arm64/cpufeature: Always use symbolic name for feature value in hwcaps
Our table of hwcaps sometimes uses the defined constant to specify the
enumeration value they are attempting to match but in some cases an
unadorned number is used. In preparation for using helper macros to to
specify the hwcaps less verbosely replace the magic numbers with their
constants, this will hopefully make the conversion to helper macros
easier to review.

There should be no functional effect from this change, a check of the
generate .rodata showed no differences.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221207-arm64-sysreg-helpers-v4-4-25b6b3fb9d18@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:51:19 +00:00
Mark Brown
ad16d4cf0b arm64/sysreg: Initial unsigned annotations for ID registers
In order to allow the simplification of way we declare hwcaps annotate
most of the unsigned fields in the identification registers as such. This
is not a complete annotation, it does cover all the cases where we already
annotate signedness of the field in the hwcaps and some others which I
happened to look at and seemed clear but there will be more and nothing
outside the identification registers was even looked at.

Other fields can be annotated as incrementally as people have the time and
need to do so.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221207-arm64-sysreg-helpers-v4-3-25b6b3fb9d18@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:51:19 +00:00
Mark Brown
c3ac60aa1c arm64/sysreg: Initial annotation of signed ID registers
We currently annotate a few bitfields as signed in hwcaps, update all of
these to be SignedEnum in the sysreg generation.  Further signed bitfields
can be done incrementally, this is the minimum required for the conversion
of the hwcaps to use token pasting to simplify their declaration.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221207-arm64-sysreg-helpers-v4-2-25b6b3fb9d18@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:51:19 +00:00
Mark Brown
a55d1425fb arm64/sysreg: Allow enumerations to be declared as signed or unsigned
Many of our enumerations follow a standard scheme where the values can be
treated as signed however there are some where the value must be treated
as signed and others that are simple enumerations where there is no clear
ordering to the values. Provide new field types SignedEnum and
UnsignedEnum which allows the signedness to be specified in the sysreg
definition and emit a REG_FIELD_SIGNED define for these which is a
boolean corresponding to our current FTR_UNSIGNED and FTR_SIGNED macros.

Existing Enums will need to be converted, since these do not have a
define generated anyone wishing to use the sign of one of these will
need to explicitly annotate that field so nothing should start going
wrong by default.

Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221207-arm64-sysreg-helpers-v4-1-25b6b3fb9d18@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2023-02-01 17:51:19 +00:00
Catalin Marinas
9b074bb1ea Merge branches 'for-next/sysreg', 'for-next/compat-hwcap' and 'for-next/sme2' into for-next/sysreg-hwcaps
Patches on this branch depend on the branches merged above.
2023-02-01 17:49:01 +00:00
Vignesh Raghavendra
47d72bbb6c arm64: dts: ti: Makefile: Rearrange entries alphabetically
Entries are first grouped as per SoC present on the board. Groups are
sorted alphabetically. This makes it easy to know SoC to board mapping
and also add new entries in alphabetical order.

Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Link: https://lore.kernel.org/r/20230126071159.2337584-1-vigneshr@ti.com
2023-02-01 23:10:29 +05:30
Dasnavis Sabiya
635fb18ba0 arch: arm64: dts: Add support for AM69 Starter Kit
AM69 Starter Kit is a single board designed for TI AM69 SOC that
provides advanced system integration in automotive ADAS applications,
autonomous mobile robot and edge AI applications. The SOC comprises
of Cortex-A72s in dual clusters, lockstep capable dual Cortex-R5F MCUs,
Vision Processing Accelerators (VPAC) with Image Signal Processor (ISP)
and multiple vision assist accelerators, Depth and Motion Processing
Accelerators (DMPAC), Deep-learning Matrix Multiply Accelerator(MMA)
and C7x floating point vector DSP

AM69 SK supports the following interfaces:
       * 32 GB LPDDR4 RAM
       * x1 Gigabit Ethernet interface
       * x3 USB 3.0 Type-A ports
       * x1 USB 3.0 Type-C port
       * x1 UHS-1 capable micro-SD card slot
       * x4 MCAN instances
       * 32 GB eMMC Flash
       * 512 Mbit OSPI flash
       * x2 Display connectors
       * x1 PCIe M.2 M Key
       * x1 PCIe M.2 E Key
       * x1 4L PCIe Card Slot
       * x3 CSI2 Camera interface
       * 40-pin Raspberry Pi header

Add initial support for the AM69 SK board.

Design Files: https://www.ti.com/lit/zip/SPRR466
TRM: https://www.ti.com/lit/zip/spruj52

Signed-off-by: Dasnavis Sabiya <sabiya.d@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Link: https://lore.kernel.org/r/20230119132958.124435-3-sabiya.d@ti.com
2023-02-01 23:10:20 +05:30
Arnd Bergmann
777d90d5f2 arm64: ZynqMP SOC changes for v6.3
- Fix node names to be aligned with dt schema
 - Rename DT overlay files to dtso
 - Add snps,resume-hs-terminations to usb nodes
 - Describe gpio-modepin node
 - Use xlnx prefix for ethernet IP
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQbPNTMvXmYlBPRwx7KSWXLKUoMIQUCY9jy1gAKCRDKSWXLKUoM
 IT+vAKCVTcn7wn+16lIoHeatapAnrJnBxwCfQfjJhTvlZmQWfAoACGTNSmo1D1A=
 =cEL0
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmPaiXMACgkQmmx57+YA
 GNkKoQ/+IboD/uIi+xHWMPfzLPontKLWpt2wlDrQASKi1TxezghsvJUwsOwT1Gt5
 06Zvacrb/Iwd5IsGwGBrxeLgz92QckfLAdva5sZdu5U4OCKfpZBfU0cFCLpI9jY3
 cPvfyaoYQhBM2q4Ma86FpWP30/9trc+BAtdxQtilvHZSBbMnMzRxC4MH1IngSwr/
 pqHEOE53Xudx83A1ekxgcJ2CEQmZFH1wyarUC9tNdjyOtglx1E2p28dcyQndCUVN
 IONL/ByaX6PpFdV4yLbQnUlMtmf2ozaFVU/M6XpzuHOY3FI3Ps6YR2VUzHryOlTz
 nCIsl4hm9aN6IploxddqfNIvN1EJfVkZvnJoTEM2GKuv36HXDXz8OYbnTG7ZlqOB
 TyoYljogeg2uGfPdx/uJECD5Ok2pOsjnE5JHuc2Uxem3O3Pv6DYZyyv5XF3iTg6i
 q+CjuSqRidzEp0ze2uMiB8g0fAXWIXnW5f1SHIr8O8wLB2kUhy4a4UVl1G+s8CWb
 F1JWIdeGW42wAkq9lFcYb/YyI5s1/h4fU4WVVXepVEQO86BXO/qUVkVp7VDt06IZ
 KACWwFnRFYyG9vBkMqOcxgRwbrtPWZL6f9nNQyqFJaorpashDL425z1dbF7NIgQK
 yXAfF/tD18Aj25n6unQT5zVwnZUknhl9dZcBAPF4/aQLINop1KY=
 =ZvvT
 -----END PGP SIGNATURE-----

Merge tag 'zynqmp-dt-for-v6.3' of https://github.com/Xilinx/linux-xlnx into arm/dt

arm64: ZynqMP SOC changes for v6.3

- Fix node names to be aligned with dt schema
- Rename DT overlay files to dtso
- Add snps,resume-hs-terminations to usb nodes
- Describe gpio-modepin node
- Use xlnx prefix for ethernet IP

* tag 'zynqmp-dt-for-v6.3' of https://github.com/Xilinx/linux-xlnx:
  arm64: dts: zynqmp: Add xlnx prefix to GEM compatible string
  arm64: dts: zynqmp: Remove clock-names from GEM in zynqmp-clk-ccf.dtsi
  arm64: dts: zynqmp: Add mode-pin GPIO controller DT node
  arm64: zynqmp: Enable hs termination flag for USB dwc3 controller
  arm64: dts: xilinx: Rename DTB overlay source files from .dts to .dtso
  arm64: xilinx: Fix opp-table-cpu
  arm64: dts: xilinx: align LED node names with dtschema

Link: https://lore.kernel.org/r/89d82a7e-6b42-97ce-2912-aa7dec965ff2@monstr.eu
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2023-02-01 16:46:59 +01:00
Allen-KH Cheng
6bbd124170 arm64: dts: mediatek: mt8516: Fix the watchdog node name
The proper name is 'watchdog', not 'toprgu' and remove the unused
label.

Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20221108033209.22751-5-allen-kh.cheng@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2023-02-01 14:54:57 +01:00
Allen-KH Cheng
70d24df30d arm64: dts: mediatek: mt7986: Fix watchdog compatible
MT7986's watchdog embeds a reset controller and needs only the
mediatek,mt7986-wdt compatible string as the MT6589 one is there
for watchdogs that don't have any reset controller capability.

Fixes: 50137c150f ("arm64: dts: mediatek: add basic mt7986 support")
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20221108033209.22751-4-allen-kh.cheng@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2023-02-01 14:54:56 +01:00
AngeloGioacchino Del Regno
02938f460c arm64: dts: mediatek: mt8195: Fix watchdog compatible
MT8195's watchdog embeds a reset controller and needs only the
mediatek,mt8195-wdt compatible string as the MT6589 one is there
for watchdogs that don't have any reset controller capability.

Fixes: 37f2582883 ("arm64: dts: Add mediatek SoC mt8195 and evaluation board")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Co-developed-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20221108033209.22751-3-allen-kh.cheng@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2023-02-01 14:54:56 +01:00
AngeloGioacchino Del Regno
e5e961628d arm64: dts: mediatek: mt8186: Fix watchdog compatible
MT8186's watchdog embeds a reset controller and needs only the
mediatek,mt8186-wdt compatible string as the MT6589 one is there
for watchdogs that don't have any reset controller capability.

Fixes: 2e78620b13 ("arm64: dts: Add MediaTek MT8186 dts and evaluation board and Makefile")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Co-developed-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Signed-off-by: Allen-KH Cheng <allen-kh.cheng@mediatek.com>
Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Link: https://lore.kernel.org/r/20221108033209.22751-2-allen-kh.cheng@mediatek.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2023-02-01 14:54:56 +01:00
Pin-yen Lin
6ea4696818 arm64: dts: mt8173-elm: Switch to SMC watchdog
Switch to SMC watchdog because we need direct control of HW watchdog
registers from kernel. The corresponding firmware was uploaded in
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/3405.

Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20220729053254.220585-1-treapking@chromium.org
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2023-02-01 14:16:50 +01:00
AngeloGioacchino Del Regno
22925af785 arm64: dts: mediatek: mt7622: Add missing pwm-cells to pwm node
Specify #pwm-cells on pwm@11006000 to make it actually usable.

Fixes: ae457b7679 ("arm64: dts: mt7622: add SoC and peripheral related device nodes")
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20221128112028.58021-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Matthias Brugger <matthias.bgg@gmail.com>
2023-02-01 11:56:36 +01:00
Pali Rohár
5a73638212 arm64: dts: marvell: Fix compatible strings for Armada 3720 boards
All Armada 3720 boards have Armada 3720 processor which is of Armada 3700
family and do not have Armada 3710 processor. So none of them should have
compatible string for Armada 3710 processor.

Fix compatible string for all these boards by removing wrong processor
string "marvell,armada3710" and adding family string "marvell,armada3700"
as the last one. (Note that this is same way how are defined Armada 3710
DTS files).
[gclement: fix conflict for v6.2]
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
2023-02-01 08:45:01 +01:00
Dmitry Baryshkov
d7133d6d25 arm64: dts: qcom: sm8350: use qcom,sm8350-dsi-ctrl compatibles
Add the per-SoC (qcom,sm8350-dsi-ctrl) compatible strings to DSI nodes
to follow the pending DSI bindings changes.

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230118032024.1715857-1-dmitry.baryshkov@linaro.org
2023-01-31 15:20:34 -06:00