Commit graph

1,462,193 commits

Author SHA1 Message Date
Arnd Bergmann
f1aa30a4b2 firmware: tegra: Changes for v7.1-rc1
This introduces a new API for the BPMP to be pass along a specifier from
 DT when getting a reference from a phandle. This is used to reference
 specific instances of the PCI controller on Tegra264. The ABI header for
 BPMP is updated to the latest version and BPMP APIs now use the more
 intuitive ENODEV instead of the non SUSV4 ENOTSUPP error code for stub
 implementations.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmnI8uEACgkQ3SOs138+
 s6G6MBAAhn72KSsuPWimww9QwCxbscyJzw65Kg3nWdeK+XUyKMhO7KiRMUUPtiHu
 qc7BrwtLk4w8rT9+2VP7v47N2I4MVpLdewb2e0mqMWpUygC7oHxHeF/RYfjgRaKX
 srGgQmzdBgiQQe2x0FZdSfTvVumKvTYJE9QkwPCjfmaQh740K4BZyRgMTYJrk6Nd
 qw/vnVEuEU1Wxg3cyronVnt2V2xkp8BOPgEgYNK6yGanE6NfmETWFKb+aXTU4ZpY
 Ou5lz4sr3ssqS+rOdTAfwL8eOiUW8CrGwLVXBb5PesWCzydpcYtni5cvAZmPx+u7
 f0/Z3Kxz+h64or2T5HQajQR+lCDYMapnonJKnUzCWNpBjXDlsuJ2MwVqkPIfFjcG
 D1JrfGoulFcmxFdskJFYptcT1izImCqYnqMO/5we6/EoOOenJpx+3iEWy76NRsHX
 zymq3z8nlt6WO3/GgKKcPEjaD6WoSpJJFC66DfADsUuXSiAoiFD7WFmTnOt1ZBrt
 xwUxJKmEbw6Z+MC2ZPNSG4gnHIty43+dCXYWfCNTljaO+I5Jsq+ZjQvWcQksa4MH
 A2J5/6A2mgaaxV6IG2tX3GFcJYB/7qjoSmxtvcKAMOEPcNu3EaWu9AFKKGycMbkc
 Ne5qvq0kLkPn47MLFWaF7wYSEeFAk6MNeHCQ7lm8rBF99oeYcGg=
 =MQCc
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO2+EACgkQmmx57+YA
 GNlw9w//aV5hws4ODqH8LOpo2tOPcVXUurLbnZGULQiy30HmbUK2TKjU1P1aKVLE
 CmXS7XQUJi4vv8afNypUkU0ehouxRnVJY5eMKcLJsnq1pQydbjWjwWn18hx3+NPK
 R0jb0WFmrxPQ40jqY+1vMdbulAGLoqQjKGY7Vd+mOaFjJtaPw8+iFDsgtCSOLWlk
 G+BwOHSZMFaMHPLJ+ufwc/++MY/0ml8LIdbPfz4uaYGCsj6PkO1OMpaW5T7WUqQ1
 zy6YnYuZNoL+VbeQGcrYTBXaQyu0Frk0314dz05O2hFpnL+0k2im5j0tp/+rQZyv
 PlpEkk2jFLQXJ8zTdVdWfF138uiV0X3wNdppuYBGe97MohY+b1n9Cb7kM9jHD6kn
 meqs5bzwaj7Oz/J/AjopG0xfRxiCSHRSsB/1hq49IbSktWv5FMDFc7LPjgL1YyPy
 kDYJDMxpZi/dotAbS0zNWBF3bPeBSmc9q0sPiEMdQHSwb3l0HCMp3JOWAf0vo6Qa
 asCHLgbb6UXQOZ5fJytRqNmEsbS6+DczlagM0h97dt1WHRNUjzmPgDtnuRScE2Ep
 B9uD5EOe+N9Z+1DF9DlMzgMC9n7nMjlQKQZyg9GNMX9pUNRVyKlBMUm59jKo5UOm
 4odcE2L0tZQYyxS73/zBinFwm0vsKHHriR4ehsOzsmln5DWbJL0=
 =+Y40
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-7.1-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

firmware: tegra: Changes for v7.1-rc1

This introduces a new API for the BPMP to be pass along a specifier from
DT when getting a reference from a phandle. This is used to reference
specific instances of the PCI controller on Tegra264. The ABI header for
BPMP is updated to the latest version and BPMP APIs now use the more
intuitive ENODEV instead of the non SUSV4 ENOTSUPP error code for stub
implementations.

* tag 'tegra-for-7.1-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  soc/tegra: bpmp: Use ENODEV instead of ENOTSUPP
  firmware: tegra: bpmp: Add tegra_bpmp_get_with_id() function
  soc/tegra: Update BPMP ABI header
  firmware: tegra: bpmp: Rename Tegra239 to Tegra238

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 23:13:02 +02:00
Arnd Bergmann
86f9823daf soc/tegra: Changes for v7.1-rc1
A number of fixes went into this for the PMC and CBB drivers. The PMC
 driver also gains support for Tegra264 and a Kconfig symbol for the
 upcoming Tegra238 is added. The various per-generation Kconfig symbols
 are now also enabled by default for ARCH_TEGRA in order to reduce the
 number of configuration options that need to be explicitly enabled.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmnI8hsACgkQ3SOs138+
 s6ETEw/+NfgS037HAZX2R42EWsiVut+qDEc2+VhauHPlzGeUo6VtaGvM3kvy9iGe
 /qv3VU78lMdo/lwq6h6f1L45TQd2e703THeGisHqUb6VaK7Aqj6N4VjyfbPBOuAw
 FYppK7WfgBY2OLIcMuxPA9PIT/jXL6NKH0YbfXnoioPGRYFRk2eFfxg+hNoIWGyS
 tEVIL7hudorq+HriRkE7zRgFUnqcotApVYdxBj99tOrShHP3aQNt8RtZr+i3UKso
 VcK08IjmmHNgBwDTCpJbtBWKq37wxMPukKfj+X+a/dD/2lLOUizn6Wh8DQQw5iqU
 rfpw+AkcK8Foi7NuwSXzIW/riS1w2h3qrQEqGP34DeyNrJ9Jxc6ePlMb2a+hTZfk
 Hw5XwyrXbrdhaHqT7qswxztjHA8dF3Dkek4Sc2aqT23A4QYDZUyu5E9CVAjL7/oc
 i769HaKMZP5xMPCW/vqI4yBJNMST3Fbaph8Zlpq8+zuukEYBGoqReOhZ21uAOqmz
 nTLQOPMKSsNf4lV0sWp8kXRIY0zNOIzbBQJINlMWI3UHJ6wAB/DAmmuQ1MN30o3n
 GlSwUjH2t+y5CUn65xlXQxrAy41sSiQkx9sMjoOUPwVMG4Xy/49pAJZPwwzXEieH
 jy+GTtimJu08Bx9IULO7y5DVNwZY/XLXojlumPSNeFTen/IIdEc=
 =eOi6
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO25IACgkQmmx57+YA
 GNnYHA//f2KoQOs2mSlkC06NHHW1s4lMr09Gx3K0TpfioayDT5SHdJqT93G0xb1r
 c/HjOCnq3a+kWhf5mNcJ/KWGaAwi/QJZqSU9GtsfD9SAyJP+1fA+8iokHAOHLbIN
 uKuFQFKPNw7ngdzFa4xpw/CaZ3q84Q2em9Yq7WEk6Ki4+hQ9LWCpl58zNZ8yi3C+
 9HQMwSlLINHTe+Ja5H0ciYpmcXI9fzRuKBjRngrMzTqaWeNT0QVOA4ca1MOQfIcs
 WaZp9oKdnGmsvCZrgsnsYv1dhlBM9Fq2XX0akvAV7ZZ7u/pdjgywZ4Bry1poPLON
 8vDCxlqBgrwxr8tpjhhaHZ3vE9CtVv1bNfc0kZ+voZb0wZSnD/VpZbfmTV+ufk2A
 +dEhvbq6wa9lZfZaSrlLfal6a4w6zClUvbSZ5JpIJWmQEdpy0EDkC2lh313oIUt5
 MZPhjBYvCyjfve2e7hZZ95HC3zVGgs0oRF8rIAw84BQNkUuaT05jDqbpuCYeO/Jy
 E2e2nVob5gExlqoqFGZTsbHTmY7urCkcI5/otTMyYApLh/MfiVKaxIohwJe9DfJO
 5CbkoxQEaavcA6AR/z+I1NNUUKBh4YmAUWLFA/hIozAnfP8TxiJmhZvfjiaudupa
 7L0XpaYK3L9YdWQ5Ja1vNnCj00PNYvGl2Ev9Pv+9WmX+KF99TO4=
 =3tc4
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-7.1-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Changes for v7.1-rc1

A number of fixes went into this for the PMC and CBB drivers. The PMC
driver also gains support for Tegra264 and a Kconfig symbol for the
upcoming Tegra238 is added. The various per-generation Kconfig symbols
are now also enabled by default for ARCH_TEGRA in order to reduce the
number of configuration options that need to be explicitly enabled.

* tag 'tegra-for-7.1-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  MAINTAINERS: Change email address for Thierry Reding
  soc/tegra: pmc: Add IO pads for Tegra264
  soc/tegra: pmc: Rename has_impl_33v_pwr flag
  soc/tegra: pmc: Refactor IO pad voltage control
  soc/tegra: pmc: Add Tegra264 wake events
  soc/tegra: pmc: Add AOWAKE regs for Tegra264
  soc/tegra: pmc: Add support for SoC specific AOWAKE offsets
  soc/tegra: pmc: Remove unused AOWAKE definitions
  soc/tegra: pmc: Add kerneldoc for wake-up variables
  soc/tegra: pmc: Correct function names in kerneldoc
  soc/tegra: pmc: Add kerneldoc for reboot notifier
  soc/tegra: common: Add Tegra114 support to devm_tegra_core_dev_init_opp_table
  soc/tegra: pmc: Enable core domain support for Tegra114
  soc/tegra: cbb: Fix cross-fabric target timeout lookup
  soc/tegra: cbb: Fix incorrect ARRAY_SIZE in fabric lookup tables
  soc/tegra: cbb: Set ERD on resume for err interrupt
  soc/tegra: cbb: Add support for CBB fabrics in Tegra238
  soc/tegra: Add Tegra238 Kconfig symbol
  soc/tegra: Make ARCH_TEGRA_SOC_FOO defaults for NVIDIA Tegra

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 23:11:42 +02:00
Bjorn Andersson
a31ad9339e firmware: qcom: scm: Allow QSEECOM on Lenovo IdeaCentre Mini X
The Hamoa-based Lenovo IdeaCentre Mini X provides the same UEFI variable
access through uefisecapp as other Hamoa devices, add it to the
allowlist.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260401-ideacentre-v2-3-5745fe2c764e@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:09:01 -05:00
Bjorn Andersson
af24122589 arm64: dts: qcom: Add the Lenovo IdeaCentre Mini X
The Lenovo IdeaCentre Mini X (Snapdragon) Desktop is a Hamoa-based
ultracompact desktop PC. It provides HDMI, DisplayPort, USB Type-C
display outputs, 5 additional USB ports, Ethernet, dual NVME slots,
headphone jack, WiFi, and Bluetooth.

Introduce a DeviceTree describing this device.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260401-ideacentre-v2-2-5745fe2c764e@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:08:54 -05:00
Bjorn Andersson
2e80b49749 dt-bindings: arm: qcom: Document the Lenovo IdeaCentre Mini X
The Lenovo IdeaCentre Mini X (Snapdragon) Desktop is a Hamoa-based
ultracompact desktop PC. It provides HDMI, DisplayPort, USB Type-C
display outputs, 5 additional USB ports, Ethernet, dual NVME slots,
headphone jack, WiFi, and Bluetooth.

Document the compatible for this device.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260401-ideacentre-v2-1-5745fe2c764e@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:08:54 -05:00
Arnd Bergmann
95c3f54db1 arm64: tegra: Default configuration changes for v7.1-rc1
Drop the various ARCH_TEGRA_*_SOC options from the default configurations
 since they are now enabled by default for ARCH_TEGRA.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmnI9DYACgkQ3SOs138+
 s6HD3w/5ARzVO8hV7gictai4bk+JGJwTJ43MVPiufQXhnsKCCauqw5/DKHMlJRXY
 1tX9onCDXTOTvn8aQZRiC6nr4HTMQJMk2Qc6uZMEXZ7fNGtX8VlEVvDax0lQbicH
 yE0Ii5eZwSavHJl9Pcw8qwcOKBOoHpg7uNujHqbwdZPI+NBLA1xUTAGT6bGquKy9
 /g29Usb/PfjwhBQxu38FHsJFkN3yP5czMeG6aiaLobGt9is54plpIlmhuHTYGFbM
 tzBXIaL0/VxZ45Rtqbgr5JgbZydIGG94vgceqqdjuzKnATkHxE9KzYQhUXlmxym/
 hBqrMNVTEjMsuELCe90rL2phGLm4DUnXgdajbPTjpaFYmc0CshJeOaOP76PS8YSY
 dDLwoZjBmnB3Z5vQgaoSQGIJL4X5c3QJVJGxKzQvR+ZTtVa6qSb2mANhh0LCGRZk
 f45wrQC97eOBZXQ8Gf0UWqORpeZQqUorQV6njn/X0vj1QgppIINO4b5+Mzo8qu8I
 Qo5kGJBudgMYt5Y/idUUS7w5BVsDqbGE6NUtEVVT/9f9DIEVr+4fT0NH2VEExF3g
 ZQqU1prZ4aOD4KK9Ohf0L/SwOyLvJJCUiiEvcGyImmNd3qT0wWAS4n9LTBpGOymt
 gSkcZ/V1BSvhaRdaORLbpqPjQL98r1jqDcDNtV/wE7IXIOTNbrE=
 =wTj9
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO2k0ACgkQmmx57+YA
 GNkQdBAAlZziCDxQ+2D1fTo7vuYv7Jge5aIrDq0SnjmiKmozryDVDPjEVc28ZyQP
 40xLfG39y660e2KZVef11KyCfyf08/juE6jVdoktAEJuhpzCSdH2uXbtOWmmyLkr
 U6T1uYMDIcemcoS06fuNitpPNO4EtpYI3gGflAsTapZoLZ91gfTpgQhpmKy4P7IP
 3F3juMg/Nz3tcIkUYD4whozIr8ydwwwjb2+LR+Nq+hRs/0jOpNQftpzJxyyRk7Us
 sb/h6EJ19Tw1r6sSbhYIGlzB1jI+uSMqbFOdPFutoOOiAZisGMqn1zA9ZVYjjqZP
 Le32noTbDdRgTUD+FL8AMaNCjE2z/2+FprJWeawymxGgwwMvRlS7mwIjQ1ali9Og
 yobCKgIzWw6x/ZN7R2hiSM2B2nWl0sXBybAHeMuB3yjPsYTuA3UNRn+0X/zd8nKp
 pMIoYkyYH3ph4HeRZ1IsSFbgnFd8PJSLfy3H2GODzZrYC9R3HSUEyEOcxeEa8Hfn
 Mq2nxaDTByBbLPSQKUsbP5oV5siDmpGtQXEvP4n77yPfhcxfVnCEwqUDXq3bHy6w
 93emHfcODaMrTmvh/UKyHPDHI9AZs206PsRm+3ejgKNSz8QrA6f6EhgWM3Yd1wIm
 8ciHwK/ZC4D1Mx/qXDZGjOrljhm57Wz1tOtX4ZybNrRmN27+hqg=
 =dDLy
 -----END PGP SIGNATURE-----

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

arm64: tegra: Default configuration changes for v7.1-rc1

Drop the various ARCH_TEGRA_*_SOC options from the default configurations
since they are now enabled by default for ARCH_TEGRA.

* tag 'tegra-for-7.1-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: tegra: defconfig: Drop redundant ARCH_TEGRA_foo_SOC

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 23:06:17 +02:00
Alexander Martinz
2b676b5a13 arm64: dts: qcom: sdm845-shift-axolotl: Enable TFA9890 codec
Audio amplifier TFA9890 is present on the board.

Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Link: https://lore.kernel.org/r/20260402-axolotl-misc-p1-v3-3-8934e9db6831@ixit.cz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:05:59 -05:00
Casey Connolly
8a53d5aa0d arm64: dts: qcom: sdm845-shift-axolotl: Set higher touchscreen i2c clock
Sets a higher rate than the default for good responsiveness of
touchscreen.

Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Link: https://lore.kernel.org/r/20260402-axolotl-misc-p1-v3-2-8934e9db6831@ixit.cz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:05:59 -05:00
Casey Connolly
338b4158e8 arm64: dts: qcom: sdm845-shift-axolotl: Enable sdcard
The SHIFT6mq features an sdcard slot, add it.

Signed-off-by: Casey Connolly <casey.connolly@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Co-developed-by: David Heidelberg <david@ixit.cz>
Signed-off-by: David Heidelberg <david@ixit.cz>
Link: https://lore.kernel.org/r/20260402-axolotl-misc-p1-v3-1-8934e9db6831@ixit.cz
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:05:59 -05:00
Arnd Bergmann
e281307532 ARM: tegra: Default configuration changes for v7.1-rc1
Drop the various ARCH_TEGRA_*_SOC options from the default configurations
 since they are now enabled by default for ARCH_TEGRA.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmnI838ACgkQ3SOs138+
 s6G+1g//QRJIYZL3ZX5Xss3gXLqV1JIQHJyrnOGdbOYN96Y4zgFFeoJegNha5hE9
 tfo4A+srqNQ4tFjePPHw4FrbX23Wb1EVJSagnZjSLpWgo3Ft+cYRaBq11fiQf15B
 zG6XRLODVZbhAxnQFMeJkpqjQKXyj4WBmMAnmFVmzG6D2onHi4Y58hyNCk2Pzq1y
 ziwSVQJd4j6ARF4xkB/gafk2DLbDOoB6BI66ImfKzVoZv+5PhVNvWer5HtKrqpiL
 4Ns8SibxWuLQ0p3DlK+Vf/FReEIlIys/pIaZZFCtihyF/YxnLcoiHHU/qd4zf3U1
 wFEFq8uuIRKwUTXP0TBHX1j7YYW9FA/HILZosX9ijU46wazsgv5iXpLs5Yu0b6Cs
 kZpmWVtkP2z6jM4G/Oqj6JNIcrpbP+oBpblo1Vgcx48zqm443Ld08KSgx5BPuTK8
 hMgb16MEvSzPUpVtoW3Gwi51QNNM/kJoEQIWVGDWa0ssjB+k+7WLA4laJOGXZMeR
 oGRfb1wARRpvARcGg41MjweQF79pixdOBKE6JTt9V0gDHdw8l3xDu0OSiutuH7hH
 gUahLh2rG6KdutN/g8Fbq0g4PieBSWxYqEVhWLBTW1f/7vFuMp9YilGJJFikYpSG
 UCVFBnnefbtL840nuphwi8dqnXqwOlNg/6YDAQpe76BJ1o7msT8=
 =/3dE
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO2gsACgkQmmx57+YA
 GNkMQw//fdph352eBgBOaQsv9+17R8oV1QjZ89nqG1HNciVzkVCiIqX1ICGgpIkc
 SXnowfEvf1ZlEhvdlFe0mffGQkmOYNIo/7OJmRp8JO9IMJFUqRB6h3Yw1SdzGBNM
 3TYKYy53bs1owEURxp58xWxilbN9vd9Gtos1/RSfdJhMHrSL55urdHrbyRx0UP5M
 u42k0GhQ3uWxw2aMMVy1mz2ZPE9+YwELhG4sxJGSDtJ4v/QyyVENZ2Bgn+z9eX+0
 s8/nchn8pCbmx+DRCQIBwMjlTaxegvCRxboXJMgpQrcSSiNudPbCigfyZOwg+Gg6
 uzGLnwOMw3GfKFLAHY0B1/M02F0NXAERbE/xq5RofgETxOHcl1csnLFOjgqT14lS
 I0eIQV0TmIZJkFa8WVuaFpgGIKseP5RfUxMh5KDQfzDNgxwNN8rMT9K+lYxMCbz9
 CSGkzh8zdtGOKNOl8i4SE1mg+9u7rtzXbe4gatZO2IKxP20B+C0gbSZnGhPSV2DL
 XKeb5Od2WHJowKt5QMXg2uNxuIzofrxtaC6J9MJ4rDhGSUx7UsZTzze+di0t6qSp
 FVUeDpEqVRUla3RvEgLirYw3R8+AxehRtpEfP9i7YM5I86vzxN4Oh30Xc71X5K5+
 pbGIZ8KSLijrW0Pn39VQT7ZC86foVY5dzVQ82v/e4fLLrroVN48=
 =9h6I
 -----END PGP SIGNATURE-----

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

ARM: tegra: Default configuration changes for v7.1-rc1

Drop the various ARCH_TEGRA_*_SOC options from the default configurations
since they are now enabled by default for ARCH_TEGRA.

* tag 'tegra-for-7.1-arm-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: defconfig: Drop redundant ARCH_TEGRA_foo_SOC
  soc/tegra: Make ARCH_TEGRA_SOC_FOO defaults for NVIDIA Tegra

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 23:04:59 +02:00
Odelu Kukatla
9b7d6b6c5c arm64: dts: qcom: talos: Add clocks for QoS configuration
Add clocks which need to be enabled for configuring QoS on
talos SoC.

Signed-off-by: Odelu Kukatla <odelu.kukatla@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260311103548.1823044-4-odelu.kukatla@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:04:11 -05:00
Michael Kelley
fd7400cfcb genirq/chip: Invoke add_interrupt_randomness() in handle_percpu_devid_irq()
handle_percpu_devid_irq() is a version of handle_percpu_irq() but with the
addition of a pointer to a per-CPU devid.

However, handle_percpu_irq() invokes add_interrupt_randomness(), while
handle_percpu_devid_irq() currently does not.

Add the missing add_interrupt_randomness(), as it is needed when per-CPU
interrupts with devid's are used in VMs for interrupts from the hypervisor.

Signed-off-by: Michael Kelley <mhklinux@outlook.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260402202400.1707-2-mhklkml@zohomail.com
2026-04-02 23:03:29 +02:00
Wenmeng Liu
594be93cdc arm64: dts: qcom: talos-evk-camera: Add DT overlay
Enable IMX577 via CCI on Talos EVK Core Kit.

The Talos EVK board does not include a camera sensor
by default. This DTSO has enabled the Arducam 12.3MP
IMX577 Mini Camera Module on the CSI-1 interface.
CSI-1 interface using mclk2 as the MCLK source on this board.

Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260305-sm6150_evk-v6-5-38ce4360d5e0@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:03:18 -05:00
Wenmeng Liu
fd3850cde7 arm64: dts: qcom: talos: Add camera MCLK pinctrl
Define pinctrl definitions to enable camera master clocks on Talos.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260305-sm6150_evk-v6-4-38ce4360d5e0@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:03:18 -05:00
Wenmeng Liu
17ba0a3c87 arm64: dts: qcom: talos: Add CCI definitions
Qualcomm Talos SoC contains single controller,
containing 2 I2C hosts.

Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260305-sm6150_evk-v6-3-38ce4360d5e0@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:03:18 -05:00
Wenmeng Liu
c0b357d5d0 arm64: dts: qcom: talos: Add camss node
Add node for the SM6150 camera subsystem.

Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Wenmeng Liu <wenmeng.liu@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260305-sm6150_evk-v6-2-38ce4360d5e0@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:03:18 -05:00
Mukesh Ojha
1bb533d644 arm64: dts: qcom: talos: Add EL2 overlay
All the existing variants Talos boards are using Gunyah hypervisor
which means that, so far, Linux-based OS could only boot in EL1 on
those devices.  However, it is possible for us to boot Linux at EL2
on these devices [1].

When running under Gunyah, the remote processor firmware IOMMU streams
are controlled by Gunyah. However, without Gunyah, the IOMMU is managed
by the consumer of this DeviceTree. Therefore, describe the firmware
streams for each remote processor.

Add a EL2-specific DT overlay and apply it to Talos IOT variant
devices to create -el2.dtb for each of them alongside "normal" dtb.

[1]
https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-developer-touchpoints.html#uefi

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Mukesh Ojha <mukesh.ojha@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260127-talos-el2-overlay-v2-3-b6a2266532c4@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:02:54 -05:00
Sudarshan Shetty
0f9e6db8a2 arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Add the device tree for the QCS615-based Talos EVK platform. The
platform is composed of a System-on-Module following the SMARC
standard, and a Carrier Board.

The Carrier Board supports several display configurations, HDMI and
LVDS. Both configurations use the same base hardware, with the display
selection controlled by a DIP switch.

Use a DTBO file, talos-evk-lvds-auo,g133han01.dtso, which defines an
overlay that disables HDMI and adds LVDS. The DTs file talos-evk
can describe the HDMI display configurations.

According to the hardware design and vendor guidance, the WiFi PA
supplies VDD_PA_A and VDD_PA_B only need to be enabled at the same time
as asserting WLAN_EN.

On this platform, WiFi enablement is controlled via the WLAN_EN GPIO
(GPIO84), which also drives the VDD_PA_A and VDD_PA_B power enables.
Remove the VDD_PA_A and VDD_PA_B regulator nodes from the device tree
and rely on WLAN_EN to enable WiFi functionality.

Add talos-evk-usb1-peripheral.dtso overlay to enable USB0 peripheral
(EDL) mode. The base DTS will keep USB0 host-only due to hardware
routing through the EDL DIP switch, and the overlay switches the
configuration for device-mode operation.

The LVDS backlight hardware has been updated to use a simplified
design. The backlight enable signal is now permanently pulled up
to 3.3V and is no longer controlled via GPIO59.

Remove the GPIO59 based backlight configuration from the device
tree, as it is no longer routed to the LVDS interface.

The initial device tree includes support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort interface
- SN65DSI84ZXHR DSI-to-LVDS bridge
- Wi-Fi/BT

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
Link: https://lore.kernel.org/r/20260331060107.501561-4-tessolveupstream@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:02:11 -05:00
Sudarshan Shetty
83a679d61e arm64: dts: qcom: talos/qcs615-ride: Fix inconsistent USB PHY node naming
The USB PHY nodes has inconsistent labels as 'usb_1_hsphy'
and 'usb_hsphy_2' across talos.dtsi and qcs615-ride.dts.
This patch renames them to follow a consistent naming
scheme.

No functional changes, only label renaming.

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260331060107.501561-3-tessolveupstream@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:02:11 -05:00
Sudarshan Shetty
44a47bd49a dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
Add binding support for the Qualcomm Technologies, Inc. Talos EVK
SMARC platform based on the QCS615 SoC.

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
Link: https://lore.kernel.org/r/20260331060107.501561-2-tessolveupstream@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:02:10 -05:00
Jie Zhang
ed5ee207bc arm64: dts: qcom: qcs615-ride: Enable Adreno 612 GPU
Enable GPU for qcs615-ride platform and provide path for zap
shader.

Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260312-qcs615-spin-2-v8-4-fca38edcd6e6@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:01:43 -05:00
Gaurav Kohli
a74c7b347d arm64: dts: qcom: talos: Add GPU cooling
Unlike the CPU, the GPU does not throttle its speed automatically when it
reaches high temperatures.

Set up GPU cooling by throttling the GPU speed when it reaches 105°C.

Signed-off-by: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260312-qcs615-spin-2-v8-3-fca38edcd6e6@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:01:43 -05:00
Jie Zhang
8de397a561 arm64: dts: qcom: talos: Add gpu and rgmu nodes
Add gpu and rgmu nodes for Talos chipset.

Signed-off-by: Jie Zhang <quic_jiezh@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260312-qcs615-spin-2-v8-2-fca38edcd6e6@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:01:43 -05:00
Qingqing Zhou
1d5c82f19b arm64: dts: qcom: talos: add the GPU SMMU node
Add the Adreno GPU SMMU node for Talos chipset.

Signed-off-by: Qingqing Zhou <quic_qqzhou@quicinc.com>
Signed-off-by: Jie Zhang <jie.zhang@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260312-qcs615-spin-2-v8-1-fca38edcd6e6@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-04-02 16:01:43 -05:00
Arnd Bergmann
feb46c1b19 arm: OMAP defconfig updates for v7.1
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEe4dGDhaSf6n1v/EMWTcYmtP7xmUFAmnNjZQACgkQWTcYmtP7
 xmURSw//XxxlYJ9PLfwf9OwWNnA+ZpqsCQGGRaUQxXYYDh92Ll4fdrut17X93Ozm
 gdAa6+6AGgy0zaMQujERYjgP9W3EGWczHWE0OjWy12xxg/Stv7DUUaFCGbhe4uhw
 Ja4J4/oS7+cGZxsULmhLPfI/T3XAAqe8iXS6lwkyTMcj2fXh3wMGz/LVI3ClGaVE
 YVUaMQpbrTD23/YYn+0ulmlkAikw/h4tDM+HIUw5HfITez6Hg+OwsESGU1EQDnrI
 BIAeW+GdC9PPlWspg+MpYVxJGp6kgorlPmhJ4VYjePorjUZV/hucyWzz3NwBslIY
 N7IJGcLpTMxxQC1Y0iBwQ+o0AHMolHfeIs5NUBEzkMf3AYQEaFKNj5rhzdwGHOeq
 35n4RLj+OJJExp5wrT67bxu6xnNKPndx0/wQM3ORdQY2RT5T46fAnw5xpU5eZeAL
 F5IZ7hKQc0UCcmftJXUzJQy7oE62uxAxtEkp6A8SAt8RNVsCoFqoHLeXqD/fhtpl
 SJ7L30lgNWxUJRSY3YzWPBTzIJ7nG8vZBOK4qD9j0U3f9WnB2pddJYxuPOSCAWKE
 IbRIVqTACWLRPcmW8bqtmrw1s+riWvshimGOfO2xLGbBdCqKFoww8iyr6cd7RAIK
 PnW0BsElWU3Fs/0dndvUWl+KNQgdSoBtzI3WpO7rk+dktBYNXPc=
 =vm4a
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO2eAACgkQmmx57+YA
 GNmrkxAAkukDFUrwIhW+xWHjnfOApb4NSB3d8WKuwIwXlsQ9IrBY5+Uk+AnnDCvQ
 G9OC7bmNOeB/ooKOiysvnX1OlIfIe9OovDniFNloSRPrAV6M2/GqdBE/za64Ki0j
 Ck3XruKp/RKmkWnA70bclAbdKpGpYQ525LOjln2MTxdE7Wel4FZtG21wh9jDFvTI
 fNFQ2s8pBN+h++aZ7WctfHDBTMCh//OfD8cMoJ8a7DNbq2NPH2wweb5Spr6zUMgo
 diK4gjhoazOIn65x5L1IxiwWS43DYaCUB7GsGh4cJbLRbqFXkLf1EsbRQM6GrmAW
 adnR7yiF9hLQCpUgMBAgD9CUe6zac3gPFAIxnDutwz1zBoMJly7z8mkN28pNOOzo
 uCS373ewONoF/Mb8qZt3O2FEvSozOGxG65m17GrfnF5cm+zqoEMEKdFXlmkN7ukn
 avzPDNqCy6hGjbKTiccRTiChrZ8s+mp4iYyVmm/sdHgNAV7rLDaRjyYZI8LGRt8n
 cfEXTtkLnR7hdZnFsiGaJOUP4E4ihzSukFCT6tRMi/wTHgQBObxDsYQdkII+h7w1
 HNMpf3I0Uy+/KoWzTnwK8kZBibvAHmgZBVU1NeV76dQRTdcuFASWZEuKFUKTwJjz
 8n7VpD2sajSqJBakL24NG5pOPWqakoZZx5Ub04qn657pw6ku4Zg=
 =rGmg
 -----END PGP SIGNATURE-----

Merge tag 'omap-for-v7.1/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap into soc/defconfig

arm: OMAP defconfig updates for v7.1

* tag 'omap-for-v7.1/defconfig-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap:
  arm: multi_v7_defconfig: Enable more OMAP 3/4 related configs
  ARM: multi_v7_defconfig: omap2plus_defconfig: Enable ITE IT66121 driver

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 23:00:36 +02:00
Arnd Bergmann
1c4c5c50ec TI K3 defconfig updates for v7.1
Generic Fixes/Cleanups:
 - Remove SENSORS_SA67MCU as the driver is dropped
 
 Board Specific Features and Fixes:
 AM69:
 - Enable configurations for Toradex Aquila AM69
 
 AM64 / AM62:
 - Enable DP83TG720 PHY driver
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQRQBrqaOmQ441h4YbUDQj8NV+8d1wUCacyZxgAKCRADQj8NV+8d
 1wZlAQCbtEyVeNN4wUOFNIxAlziPOqxVzr4V/Kfk+5PqtGoCJAEAttEtC6L38ySV
 i6Clf5JgE+aho58b88dPcOtDIH8lzQo=
 =+tSQ
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO2LIACgkQmmx57+YA
 GNkkNA/7B/TdH/Ir0NLyLh1TqLEMrTrSlAFugKj7tq4zz+hEfIkyoBkbXMwDMOtg
 KX7orY9dDEMNBC20RE8yB5siqdsajEx5i1EU6DJdu7s1DG6KrYvdTgu6e3Zcsb+p
 QfxuIXIZt61W7UrxcVAyjhD2B4Kxun/VMw7bKXMG3T4od9XuR5MDpII7jfzHnZq8
 KUyhd1oEIfURzODYJ4GbOzoIE7GUBtvKBF9CyL01iY1CS4Bs98plj8NXmitjp0Ej
 p/3e47Zf7gIJ9ZmFGACZ0wFSdo1eE15b3jtTJCUgdtrX8TBVTyjNvxfldPw0LH4T
 i9LPgIDc4DPA+teGvU+O6Pmqg2xeEZ+UrhyaOdBkCrshAoceirdsDL9Jn48tsOw+
 ArAAKiW0Jg35ueGRCWHh7tULGrvAqdgYxZvKv075waB7AazrxLGvzYefkF6kWWYH
 PNBvKqGjMZF3RkhtnBAJruv2RQa44yRZxx0P9FPeZxWsV/qDovxMqp4ftfv2pzGf
 ZacjA1U2cAZaxKUfP2/cwGVquEjw+84LWlzgzoO8/rS0CZ6fwcAG27r32in79sik
 Ya0a2/rlkHWVUH16krQv69eqrrjTuuJ47AthbWGrjcUSdMAS3UHUA64cLxZn4F3M
 s+d879y825HtE5/Zkg1hs57S2Zw345WdmIM+1SZLj4vSloVbO28=
 =IHNv
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-config-for-v7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/defconfig

TI K3 defconfig updates for v7.1

Generic Fixes/Cleanups:
- Remove SENSORS_SA67MCU as the driver is dropped

Board Specific Features and Fixes:
AM69:
- Enable configurations for Toradex Aquila AM69

AM64 / AM62:
- Enable DP83TG720 PHY driver

* tag 'ti-k3-config-for-v7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: defconfig: Enable DP83TG720 PHY driver
  arm64: defconfig: Enable configurations for Toradex Aquila AM69
  arm64: defconfig: remove SENSORS_SA67MCU

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 22:58:55 +02:00
Thomas Zimmermann
757b23c2cb
arch/arm: Drop CONFIG_FIRMWARE_EDID from defconfig files
CONFIG_FIRMWARE_EDID=y depends on X86 or EFI_GENERIC_STUB. Neither is
true here, so drop the lines from the defconfig files.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Kevin Hilman (TI) <khilman@baylibre.com>
Link: https://lore.kernel.org/r/20260401082533.214103-1-tzimmermann@suse.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 22:58:42 +02:00
Arnd Bergmann
ba5d247871 Qualcomm Arm64 defconfig updates for v7.1
Enable base drivers for booting boards based on Kaanapali, Glymur,
 Eliza, SM8750, and IPQ5210 SoCs.
 
 Enable the Milos LPASS LPI driver. Enable the Qualcomm WCD937x headphone
 codec driver, used on QCM6490 boards.
 
 Enable the QCOMTEE driver, to support the interface found in various
 Qualcomm SoCs.
 
 Enable ethernet and analog codecs used on the Arduino Ventuno Q.
 
 Enable the Lontium LT8713sx driver, used for the Monaco EVK board.
 
 Enable the PCI pwrctrl generic driver used in a few different
 Qualcomm-based boards with USB controllers on PCI buses.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmnMQrMACgkQCx85Pw2Z
 rcV1GA/9E7aR5dRSQ7+984eL2nP/NpE8MLrfiNaaJRR3D6MfCJqUbmarunlngNcR
 3RgZtnIK0NjwbqGoSd+PBk4zY1Lr8PFWRp8q1N4tKgU6gmLixIcorhgUgIwZgiBR
 OVZdtaPI/xCAQX6R50PCq2fcCXmb7TUV3+wPHiyTyB6DxzkxikThKdS3gyH7XbHM
 qKLxR91/yGxV0RO09u4i1p9n9v4gTfbxIFnwK2qzWJn0hXAuFJazlt4a2VbLYcIV
 pnf41D6DMBouoPQnt47zw8rREeDB9KarC5P/VNmQ68atvk7C4gLSjBhArebyi6dk
 LdlEc06HUWcyGcCXifTvPSdP23kfYWCsRdZMpcSdUjBJtwoihHKQlLbkv9vSizbM
 Ty4EPXqTG3boiriN9bHXFThtBIvkQ5jwGTiUew5cmgHcIO7f7ClZwBj6d8HuX48o
 Ic0bkMNcWH/6WKV6zLQ24TOW0kWcjkG4aiqODu5SZfckTpeZ7cUuUihmOieNZ4pQ
 0JebsRcNRqziTF1I3jtvVd7MfWqNz90xRUPxwQwAYH92zb+zomQl+iixBTKk1vJi
 uTGL146es4oOSMqlHBHlOGPxnByJhcR2GabHExZCfxrkmUw0L+Xw+ZBQmFDmrWaJ
 bPMtJAB2WcZxLY5tYQMjm3LcD7JqA9EKfdE8tgjW+/eZMxt83CI=
 =XacW
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmnO1j4ACgkQmmx57+YA
 GNn6dw//agIl4yryDijyFkbqQPKrO7Eej8pImy6ypbXxdT3RLA906z9Q3PgDXjsq
 LhBVesVrqZL206KvqCNg1PuT6who8ZGMfGjRuBNqXz9A3NyhmYIFKQv61qR8/uqh
 pgpwApKy3iLUlYCV1YzFtWQLc2BzVB3lUhaqo7QuL7rtybSuTmP/M3nCeZYBycSS
 jyItpYc6j7BYQoECNiWzAdIp0IQk+gYTysBqa+lE1iGwjHJ6+5BqshQrzXrkeufP
 X8O9Ieo/U13maPIYuyWGk2RnEuHJzgqfJ9fCEbwQUgn15coNb8TUU1AakbImVhIw
 9+nVm1vMEgTgDQyT34OwaoBRhx1OI3sJUy2iB1GwUet+LDSC3px//m90ApivXJ/p
 vujC5WLkI7W3yMb7KkV/xIDBy7cMveSE8427i8S7GPUC1kinbK7sqYKZ7PyBpb2r
 k5C2FLznDcVqrRSGY5I3WK1+xq0I0hYHJHs8ThC3PFfVLWvfadjC/O68ZfiuN4+C
 Aw1EtA7DiR94txAIUdgTtoqyP/bLen45iAlpLcV/Z9Hul3xHtBtcBuyaLAmBfDNB
 hAv3/YDESlHkMhdnSfGg5iPewRAFO7CDT7t98B/OriD8+EtE5L60gGfNVMZwChST
 heRSqXAb3ZVZAq8h8QHbyjn/hGNz0DIc+DANQtJeKGaLwLAnrSc=
 =4zHW
 -----END PGP SIGNATURE-----

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

Qualcomm Arm64 defconfig updates for v7.1

Enable base drivers for booting boards based on Kaanapali, Glymur,
Eliza, SM8750, and IPQ5210 SoCs.

Enable the Milos LPASS LPI driver. Enable the Qualcomm WCD937x headphone
codec driver, used on QCM6490 boards.

Enable the QCOMTEE driver, to support the interface found in various
Qualcomm SoCs.

Enable ethernet and analog codecs used on the Arduino Ventuno Q.

Enable the Lontium LT8713sx driver, used for the Monaco EVK board.

Enable the PCI pwrctrl generic driver used in a few different
Qualcomm-based boards with USB controllers on PCI buses.

* tag 'qcom-arm64-defconfig-for-7.1' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm64: defconfig: enable pci-pwrctrl-generic as module
  arm64: defconfig: Enable Lontium LT8713sx driver
  arm64: defconfig: Enable Qualcomm Eliza SoC display clock controller
  arm64: defconfig: enable IPQ5210 RDP504 base configs
  arm64: defconfig: Enable Milos LPASS LPI pinctrl driver
  arm64: defconfig: Enable Kaanapali clock controllers
  arm64: defconfig: Enable configs for Arduino VENTUNO Q
  arm64: defconfig: Enable Qualcomm Eliza basic resource providers
  arm64: defconfig: Enable S5KJN1 camera sensor
  arm64: defconfig: Enable Qualcomm WCD937x headphone codec as module
  arm64: defconfig: Enable QCOMTEE module for QTEE-enabled Qualcomm SoCs
  arm64: defconfig: Enable configs for Qualcomm Glymur SoC
  arm64: defconfig: Enable SM8750 clock controllers

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-04-02 22:48:51 +02:00
Mark Brown
85b6f920a8 arm64/sysreg: Update SMIDR_EL1 to DDI0601 2025-06
Update the definition of SMIDR_EL1 in the sysreg definition to reflect the
information in DD0601 2025-06. This includes somewhat more generic ways of
describing the sharing of SMCUs, more information on supported priorities
and provides additional resolution for describing affinity groups.

Reviewed-by: Fuad Tabba <tabba@google.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2026-04-02 21:48:21 +01:00
Rosen Penev
df5ead915b HSI: omap_ssi_port: remove depends on ARM
This has both ARM and COMPILE_TEST. The latter will never get hit on a
non ARM system. Allows compilation on at least x86.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20260401215718.11375-1-rosenp@gmail.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2026-04-02 22:33:44 +02:00
Rosen Penev
1e7269aa68 HSI: omap_ssi_port: remove set but unused variables
W=1 build warns that these are set and unused. eg:

error: variable ‘mode’ set but not used
[-Werror=unused-but-set-variable]

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20260401215618.11251-1-rosenp@gmail.com
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
2026-04-02 22:25:26 +02:00
Andrii Nakryiko
e8aec1058c Merge branch 'libbpf-clarify-raw-address-single-kprobe-attach-behavior'
Hoyeon Lee says:

====================
libbpf: clarify raw-address single kprobe attach behavior

Today libbpf documents single-kprobe attach through func_name, with an
optional offset. For the PMU-based path, func_name = NULL with an
absolute address in offset already works as well, but that is not
described in the API.

This patchset clarifies this behavior. First commit fixes kprobe
and uprobe attach error handling to use direct error codes. Next adds
kprobe API comments for the raw-address form and rejects it explicitly
for legacy tracefs/debugfs kprobes. Last adds PERF and LINK selftests
for the raw-address form, and checks that LEGACY rejects it.
---
Changes in v7:
- Change selftest line wrapping and assertions

Changes in v6:
- Split the kprobe/uprobe direct error-code fix into a separate patch

Changes in v5:
- Add kprobe API docs, use -EOPNOTSUPP, and switch selftests to LIBBPF_OPTS

Changes in v4:
- Inline raw-address error formatting and remove the probe_target buffer

Changes in v3:
- Drop bpf_kprobe_opts.addr and reuse offset when func_name is NULL
- Make legacy tracefs/debugfs kprobes reject the raw-address form
- Update selftests to cover PERF/LINK raw-address attach and LEGACY reject

Changes in v2:
- Fix line wrapping and indentation
====================

Link: https://patch.msgid.link/20260401143116.185049-1-hoyeon.lee@suse.com
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
2026-04-02 13:23:19 -07:00
Hoyeon Lee
9d77cefe8f selftests/bpf: Add test for raw-address single kprobe attach
Currently, attach_probe covers manual single-kprobe attaches by
func_name, but not the raw-address form that the PMU-based
single-kprobe path can accept.

This commit adds PERF and LINK raw-address coverage. It resolves
SYS_NANOSLEEP_KPROBE_NAME through kallsyms, passes the absolute address
in bpf_kprobe_opts.offset with func_name = NULL, and verifies that
kprobe and kretprobe are still triggered. It also verifies that LEGACY
rejects the same form.

Signed-off-by: Hoyeon Lee <hoyeon.lee@suse.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/bpf/20260401143116.185049-4-hoyeon.lee@suse.com
2026-04-02 13:23:19 -07:00
Hoyeon Lee
e1621c7528 libbpf: Clarify raw-address single kprobe attach behavior
bpf_program__attach_kprobe_opts() documents single-kprobe attach
through func_name, with an optional offset. For the PMU-based path,
func_name = NULL with an absolute address in offset already works as
well, but that is not described in the API.

This commit clarifies this existing non-legacy behavior. For PMU-based
attach, callers can use func_name = NULL with an absolute address in
offset as the raw-address form. For legacy tracefs/debugfs kprobes,
reject this form explicitly.

Signed-off-by: Hoyeon Lee <hoyeon.lee@suse.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/bpf/20260401143116.185049-3-hoyeon.lee@suse.com
2026-04-02 13:23:19 -07:00
Hoyeon Lee
f547cf7947 libbpf: Use direct error codes for kprobe/uprobe attach
perf_event_open_probe() and perf_event_{k,u}probe_open_legacy() helpers
are returning negative error codes directly on failure. This commit
changes bpf_program__attach_{k,u}probe_opts() to use those return
values directly instead of re-reading possibly changed errno.

Signed-off-by: Hoyeon Lee <hoyeon.lee@suse.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/bpf/20260401143116.185049-2-hoyeon.lee@suse.com
2026-04-02 13:23:19 -07:00
Jean Delvare
857fa8f2a5 accel: ethosu: Add hardware dependency hint
The Ethos-U NPU is only available on ARM systems, so add a hardware
dependency hint to prevent this driver from being needlessly
included in kernels built for other architectures.

Signed-off-by: Jean Delvare <jdelvare@suse.de>
Link: https://patch.msgid.link/20260401122323.6127a77c@endymion
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
2026-04-02 15:18:14 -05:00
Mykyta Yatsenko
1cc96e0e20 libbpf: Fix BTF handling in bpf_program__clone()
Align bpf_program__clone() with bpf_object_load_prog() by gating
BTF func/line info on FEAT_BTF_FUNC kernel support, and resolve
caller-provided prog_btf_fd before checking obj->btf so that callers
with their own BTF can use clone() even when the object has no BTF
loaded.

While at it, treat func_info and line_info fields as atomic groups
to prevent mismatches between pointer and count from different sources.

Move bpf_program__clone() to libbpf 1.8.

Fixes: 970bd2dced ("libbpf: Introduce bpf_program__clone()")
Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20260401151640.356419-1-mykyta.yatsenko5@gmail.com
2026-04-02 13:02:46 -07:00
Thomas Richter
eb27e1c885 perf test: Skip perf data type profiling tests for s390
Test case 'perf data type profiling tests' fails on s390 with this
error:

  # ./perf mem record -- ./perf test -w code_with_type
  failed: no PMU supports the memory events
  # echo $?
  255
  #

because s390 does not support memory events at all. According to the
man page, perf annotate --code-with-type only works with memory
instructions only.  As command 'perf mem record ...' is not supported
on s390, skip this test for s390.

Output before:
 # ./perf test 'perf data type profiling tests'
 77: perf data type profiling tests                        : FAILED!

Output after:
 # ./perf test 'perf data type profiling tests'
 77: perf data type profiling tests                        : Skip

Fixes: f60a5c2296 ("perf tests: Test annotate with data type profiling and rust")
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Cc: Dmitrii Dolgov <9erthalion6@gmail.com>
Suggested-by: Namhyung Kim <namhyung@kernel.org>
Suggested-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-02 12:51:10 -07:00
Anubhav Shelat
ff6be45adb perf tools: prevent null dsos from being added
When sorting the dso array we sometimes get a crash due to null
comparisons in comparator functions. So prevent __dsos__add from
adding null to the dso array to avoid out-of-memory related errors.

Signed-off-by: Anubhav Shelat <ashelat@redhat.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-02 12:51:10 -07:00
Thomas Falcon
77cb9b443b perf test: Fix ratio_to_prev event parsing test
test__ratio_to_prev() assumed the first event in a group is the leader,
which is not the case when the event is expanded into two event groups
on hybrid PMU's with auto counter reload support. Instead, iterate over the
event group generated for each core PMU. Also update "wrong leader" test to
check that the subordinate event has the correct leader instead of checking
that it is not the group leader. Finally, do not exit immediately if a PMU
without auto counter reload support is found.

Signed-off-by: Thomas Falcon <thomas.falcon@intel.com>
Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Fixes: 56be0fe5f6 ("perf record: Add auto counter reload parse and regression tests")
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-02 12:51:10 -07:00
Chuck Lever
9a82bfde47 perf tools: Fix module symbol resolution for non-zero .text sh_addr
When perf resolves symbols from kernel module ELF files (ET_REL),
it converts symbol addresses to file offsets so that sample IPs
can be matched to the correct symbol. The conversion adjusts each
symbol's st_value:

  sym->st_value -= shdr->sh_addr - shdr->sh_offset;

For vmlinux (ET_EXEC), st_value is a virtual address and sh_addr
is the section's virtual base, so subtracting sh_addr and adding
sh_offset correctly yields a file offset.

For kernel modules (ET_REL), st_value is a section-relative
offset. The module loader ignores sh_addr entirely and places
symbols at module_base + st_value. Converting to file offset
requires only adding sh_offset; subtracting sh_addr introduces an
error equal to sh_addr bytes.

When .text has sh_addr == 0 -- the historical norm for simple
modules -- both formulas produce the same result and the bug is
latent. As modules gain more metadata sections before .text (.note,
.static_call.text, etc.), the linker assigns .text a non-zero
sh_addr, exposing the defect. For example, nfsd.ko on this kernel
has sh_addr=0xa80, kvm-intel.ko has sh_addr=0x1e90.

The effect is that all .text symbols in affected modules
shift by sh_addr bytes relative to sample IPs, causing perf
report to attribute samples to incorrect, nearby symbols. This
was observed as 13% of LLC-load-miss samples misattributed
to nfsd_file_get_dio_attrs when the actual hot function was
nfsd_cache_lookup, approximately 0xa80 bytes away in the symbol
table.

Use the existing dso__rel() flag (already set for ET_REL modules)
to select the correct adjustment: add sh_offset for ET_REL,
subtract (sh_addr - sh_offset) for ET_EXEC/ET_DYN.

Fixes: 0131c4ec79 ("perf tools: Make it possible to read object code from kernel modules")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-02 12:51:10 -07:00
Namhyung Kim
4cbceeca56 perf trace: Skip unnecessary synthesis for summary-only mode
It needs to synthesize task info for the comm name.  The mmap
information is only needed for callchain symbolization which is not used
by the summary mode.  Also total or cgroup summary mode don't require
the task info.  Let's skip the processing if possible.

Reviewed-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-02 12:51:09 -07:00
Breno Leitao
b5708a308a perf stat: Fix crash on arm64
Perf stat is crashing on arm64 hosts with the following issue:

  # make -C tools/perf DEBUG=1
  # perf stat sleep 1
  perf: util/evsel.c:2034: get_group_fd: Assertion `!(!leader->core.fd)' failed.
  [1]    1220794 IOT instruction (core dumped)  ./perf stat

The sorting function introduced by commit a745c0831c ("perf stat:
Sort default events/metrics") compares events based on their individual
properties. This can cause events from different groups to be
interleaved, resulting in group members appearing before their leaders
in the sorted evlist.

When the iterator opens events in list order, a group member may be
processed before its leader has been opened.

For example, CPU_CYCLES (idx=32) with leader STALL_SLOT_BACKEND (idx=37)
could be sorted before its leader, causing the crash when CPU_CYCLES
tries to get its group fd from the not-yet-opened leader.

Fix this by comparing events based on their leader's attributes instead
of their own attributes when the events are in different groups. This
ensures all members of a group share the same sort key as their leader,
keeping groups together and guaranteeing leaders are opened before their
members.

Fixes: a745c0831c ("perf stat: Sort default events/metrics")
Reported-by: Denis Yaroshevskiy <dyaroshev@meta.com>
Tested-by: Dmitry Ilvokhin <d@ilvokhin.com>
Tested-by: Ian Rogers <irogers@google.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-04-02 12:51:09 -07:00
Ryan Roberts
1d37713fa8 arm64: mm: Remove pmd_sect() and pud_sect()
The semantics of pXd_leaf() are very similar to pXd_sect(). The only
difference is that pXd_sect() only considers it a section if PTE_VALID
is set, whereas pXd_leaf() permits both "valid" and "present-invalid"
types.

Using pXd_sect() has caused issues now that large leaf entries can be
present-invalid since commit a166563e7e ("arm64: mm: support large
block mapping when rodata=full"), so let's just remove the API and
standardize on pXd_leaf().

There are a few callsites of the form pXd_leaf(READ_ONCE(*pXdp)). This
was previously fine for the pXd_sect() macro because it only evaluated
its argument once. But pXd_leaf() evaluates its argument multiple times.
So let's avoid unintended side effects by reimplementing pXd_leaf() as
an inline function.

Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2026-04-02 20:49:16 +01:00
Ryan Roberts
15bfba1ad7 arm64: mm: Handle invalid large leaf mappings correctly
It has been possible for a long time to mark ptes in the linear map as
invalid. This is done for secretmem, kfence, realm dma memory un/share,
and others, by simply clearing the PTE_VALID bit. But until commit
a166563e7e ("arm64: mm: support large block mapping when
rodata=full") large leaf mappings were never made invalid in this way.

It turns out various parts of the code base are not equipped to handle
invalid large leaf mappings (in the way they are currently encoded) and
I've observed a kernel panic while booting a realm guest on a
BBML2_NOABORT system as a result:

[   15.432706] software IO TLB: Memory encryption is active and system is using DMA bounce buffers
[   15.476896] Unable to handle kernel paging request at virtual address ffff000019600000
[   15.513762] Mem abort info:
[   15.527245]   ESR = 0x0000000096000046
[   15.548553]   EC = 0x25: DABT (current EL), IL = 32 bits
[   15.572146]   SET = 0, FnV = 0
[   15.592141]   EA = 0, S1PTW = 0
[   15.612694]   FSC = 0x06: level 2 translation fault
[   15.640644] Data abort info:
[   15.661983]   ISV = 0, ISS = 0x00000046, ISS2 = 0x00000000
[   15.694875]   CM = 0, WnR = 1, TnD = 0, TagAccess = 0
[   15.723740]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
[   15.755776] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000081f3f000
[   15.800410] [ffff000019600000] pgd=0000000000000000, p4d=180000009ffff403, pud=180000009fffe403, pmd=00e8000199600704
[   15.855046] Internal error: Oops: 0000000096000046 [#1]  SMP
[   15.886394] Modules linked in:
[   15.900029] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 7.0.0-rc4-dirty #4 PREEMPT
[   15.935258] Hardware name: linux,dummy-virt (DT)
[   15.955612] pstate: 21400005 (nzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[   15.986009] pc : __pi_memcpy_generic+0x128/0x22c
[   16.006163] lr : swiotlb_bounce+0xf4/0x158
[   16.024145] sp : ffff80008000b8f0
[   16.038896] x29: ffff80008000b8f0 x28: 0000000000000000 x27: 0000000000000000
[   16.069953] x26: ffffb3976d261ba8 x25: 0000000000000000 x24: ffff000019600000
[   16.100876] x23: 0000000000000001 x22: ffff0000043430d0 x21: 0000000000007ff0
[   16.131946] x20: 0000000084570010 x19: 0000000000000000 x18: ffff00001ffe3fcc
[   16.163073] x17: 0000000000000000 x16: 00000000003fffff x15: 646e612065766974
[   16.194131] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
[   16.225059] x11: 0000000000000000 x10: 0000000000000010 x9 : 0000000000000018
[   16.256113] x8 : 0000000000000018 x7 : 0000000000000000 x6 : 0000000000000000
[   16.287203] x5 : ffff000019607ff0 x4 : ffff000004578000 x3 : ffff000019600000
[   16.318145] x2 : 0000000000007ff0 x1 : ffff000004570010 x0 : ffff000019600000
[   16.349071] Call trace:
[   16.360143]  __pi_memcpy_generic+0x128/0x22c (P)
[   16.380310]  swiotlb_tbl_map_single+0x154/0x2b4
[   16.400282]  swiotlb_map+0x5c/0x228
[   16.415984]  dma_map_phys+0x244/0x2b8
[   16.432199]  dma_map_page_attrs+0x44/0x58
[   16.449782]  virtqueue_map_page_attrs+0x38/0x44
[   16.469596]  virtqueue_map_single_attrs+0xc0/0x130
[   16.490509]  virtnet_rq_alloc.isra.0+0xa4/0x1fc
[   16.510355]  try_fill_recv+0x2a4/0x584
[   16.526989]  virtnet_open+0xd4/0x238
[   16.542775]  __dev_open+0x110/0x24c
[   16.558280]  __dev_change_flags+0x194/0x20c
[   16.576879]  netif_change_flags+0x24/0x6c
[   16.594489]  dev_change_flags+0x48/0x7c
[   16.611462]  ip_auto_config+0x258/0x1114
[   16.628727]  do_one_initcall+0x80/0x1c8
[   16.645590]  kernel_init_freeable+0x208/0x2f0
[   16.664917]  kernel_init+0x24/0x1e0
[   16.680295]  ret_from_fork+0x10/0x20
[   16.696369] Code: 927cec03 cb0e0021 8b0e0042 a9411c26 (a900340c)
[   16.723106] ---[ end trace 0000000000000000 ]---
[   16.752866] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[   16.792556] Kernel Offset: 0x3396ea200000 from 0xffff800080000000
[   16.818966] PHYS_OFFSET: 0xfff1000080000000
[   16.837237] CPU features: 0x0000000,00060005,13e38581,957e772f
[   16.862904] Memory Limit: none
[   16.876526] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]---

This panic occurs because the swiotlb memory was previously shared to
the host (__set_memory_enc_dec()), which involves transitioning the
(large) leaf mappings to invalid, sharing to the host, then marking the
mappings valid again. But pageattr_p[mu]d_entry() would only update the
entry if it is a section mapping, since otherwise it concluded it must
be a table entry so shouldn't be modified. But p[mu]d_sect() only
returns true if the entry is valid. So the result was that the large
leaf entry was made invalid in the first pass then ignored in the second
pass. It remains invalid until the above code tries to access it and
blows up.

The simple fix would be to update pageattr_pmd_entry() to use
!pmd_table() instead of pmd_sect(). That would solve this problem.

But the ptdump code also suffers from a similar issue. It checks
pmd_leaf() and doesn't call into the arch-specific note_page() machinery
if it returns false. As a result of this, ptdump wasn't even able to
show the invalid large leaf mappings; it looked like they were valid
which made this super fun to debug. the ptdump code is core-mm and
pmd_table() is arm64-specific so we can't use the same trick to solve
that.

But we already support the concept of "present-invalid" for user space
entries. And even better, pmd_leaf() will return true for a leaf mapping
that is marked present-invalid. So let's just use that encoding for
present-invalid kernel mappings too. Then we can use pmd_leaf() where we
previously used pmd_sect() and everything is magically fixed.

Additionally, from inspection kernel_page_present() was broken in a
similar way, so I'm also updating that to use pmd_leaf().

The transitional page tables component was also similarly broken; it
creates a copy of the kernel page tables, making RO leaf mappings RW in
the process. It also makes invalid (but-not-none) pte mappings valid.
But it was not doing this for large leaf mappings. This could have
resulted in crashes at kexec- or hibernate-time. This code is fixed to
flip "present-invalid" mappings back to "present-valid" at all levels.

Finally, I have hardened split_pmd()/split_pud() so that if it is passed
a "present-invalid" leaf, it will maintain that property in the split
leaves, since I wasn't able to convince myself that it would only ever
be called for "present-valid" leaves.

Fixes: a166563e7e ("arm64: mm: support large block mapping when rodata=full")
Cc: stable@vger.kernel.org
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2026-04-02 20:49:16 +01:00
Ryan Roberts
f12b435de2 arm64: mm: Fix rodata=full block mapping support for realm guests
Commit a166563e7e ("arm64: mm: support large block mapping when
rodata=full") enabled the linear map to be mapped by block/cont while
still allowing granular permission changes on BBML2_NOABORT systems by
lazily splitting the live mappings. This mechanism was intended to be
usable by realm guests since they need to dynamically share dma buffers
with the host by "decrypting" them - which for Arm CCA, means marking
them as shared in the page tables.

However, it turns out that the mechanism was failing for realm guests
because realms need to share their dma buffers (via
__set_memory_enc_dec()) much earlier during boot than
split_kernel_leaf_mapping() was able to handle. The report linked below
showed that GIC's ITS was one such user. But during the investigation I
found other callsites that could not meet the
split_kernel_leaf_mapping() constraints.

The problem is that we block map the linear map based on the boot CPU
supporting BBML2_NOABORT, then check that all the other CPUs support it
too when finalizing the caps. If they don't, then we stop_machine() and
split to ptes. For safety, split_kernel_leaf_mapping() previously
wouldn't permit splitting until after the caps were finalized. That
ensured that if any secondary cpus were running that didn't support
BBML2_NOABORT, we wouldn't risk breaking them.

I've fix this problem by reducing the black-out window where we refuse
to split; there are now 2 windows. The first is from T0 until the page
allocator is inititialized. Splitting allocates memory for the page
allocator so it must be in use. The second covers the period between
starting to online the secondary cpus until the system caps are
finalized (this is a very small window).

All of the problematic callers are calling __set_memory_enc_dec() before
the secondary cpus come online, so this solves the problem. However, one
of these callers, swiotlb_update_mem_attributes(), was trying to split
before the page allocator was initialized. So I have moved this call
from arch_mm_preinit() to mem_init(), which solves the ordering issue.

I've added warnings and return an error if any attempt is made to split
in the black-out windows.

Note there are other issues which prevent booting all the way to user
space, which will be fixed in subsequent patches.

Reported-by: Jinjiang Tu <tujinjiang@huawei.com>
Closes: https://lore.kernel.org/all/0b2a4ae5-fc51-4d77-b177-b2e9db74f11d@huawei.com/
Fixes: a166563e7e ("arm64: mm: support large block mapping when rodata=full")
Cc: stable@vger.kernel.org
Reviewed-by: Kevin Brodsky <kevin.brodsky@arm.com>
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2026-04-02 20:49:16 +01:00
Nicholas Carlini
07712db808
eventpoll: defer struct eventpoll free to RCU grace period
In certain situations, ep_free() in eventpoll.c will kfree the epi->ep
eventpoll struct while it still being used by another concurrent thread.
Defer the kfree() to an RCU callback to prevent UAF.

Fixes: f2e467a482 ("eventpoll: Fix semi-unbounded recursion")
Signed-off-by: Nicholas Carlini <nicholas@carlini.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-04-02 21:45:02 +02:00
Karol Wachowski
c636ae346d accel/ivpu: Trigger recovery on TDR with OS scheduling
With OS scheduling mode the driver cannot determine which context
caused the timeout, so context abort cannot be used. Instead of
queuing context_abort_work, directly trigger full device recovery
when a job timeout (TDR) occurs in OS scheduling mode.

Fixes: ade00a6c90 ("accel/ivpu: Perform engine reset instead of device recovery on TDR")
Reviewed-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Reviewed-by: Lizhi Hou <lizhi.hou@amd.com>
Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Link: https://patch.msgid.link/20260402125526.845210-1-karol.wachowski@linux.intel.com
2026-04-02 21:29:01 +02:00
Changwoo Min
0c4a59df37 sched_ext: Fix is_bpf_migration_disabled() false negative on non-PREEMPT_RCU
Since commit 8e4f0b1ebc ("bpf: use rcu_read_lock_dont_migrate() for
trampoline.c"), the BPF prolog (__bpf_prog_enter) calls migrate_disable()
only when CONFIG_PREEMPT_RCU is enabled, via rcu_read_lock_dont_migrate().
Without CONFIG_PREEMPT_RCU, the prolog never touches migration_disabled,
so migration_disabled == 1 always means the task is truly
migration-disabled regardless of whether it is the current task.

The old unconditional p == current check was a false negative in this
case, potentially allowing a migration-disabled task to be dispatched to
a remote CPU and triggering scx_error in task_can_run_on_remote_rq().

Only apply the p == current disambiguation when CONFIG_PREEMPT_RCU is
enabled, where the ambiguity with the BPF prolog still exists.

Fixes: 8e4f0b1ebc ("bpf: use rcu_read_lock_dont_migrate() for trampoline.c")
Cc: stable@vger.kernel.org # v6.18+
Link: https://lore.kernel.org/lkml/20250821090609.42508-8-dongml2@chinatelecom.cn/
Signed-off-by: Changwoo Min <changwoo@igalia.com>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2026-04-02 09:26:55 -10:00
Ionut Nechita
a4983968fa drm/amd/display: Wire up dcn10_dio_construct() for all pre-DCN401 generations
Description:
 - Commit b82f075934 ("drm/amd/display: Migrate DIO registers access
   from hwseq to dio component") moved DIO_MEM_PWR_CTRL register access
   behind the new dio abstraction layer but only created the dio object for
   DCN 4.01. On all other generations (DCN 10/20/21/201/30/301/302/303/
   31/314/315/316/32/321/35/351/36), the dio pointer is NULL, causing the
   register write to be silently skipped.

   This results in AFMT HDMI memory not being powered on during init_hw,
   which can cause HDMI audio failures and display issues on affected
   hardware including Renoir/Cezanne (DCN 2.1) APUs that use dcn10_init_hw.

   Call dcn10_dio_construct() in each older DCN generation's resource.c
   to create the dio object, following the same pattern as DCN 4.01. This
   ensures the dio pointer is non-NULL and the mem_pwr_ctrl callback works
   through the dio abstraction for all DCN generations.

Fixes: b82f075934 ("drm/amd/display: Migrate DIO registers access from hwseq to dio component.")
Reviewed-by: Ivan Lipski <ivan.lipski@amd.com>
Signed-off-by: Ionut Nechita <ionut_n2001@yahoo.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2026-04-02 15:24:13 -04:00