Qualcomm has confirmed that, much like Cortex A53 and A55, KRYO
2XX/3XX/4XX silver cores are unaffected by Spectre BHB. Add them to
the safe list.
Fixes: 558c303c97 ("arm64: Mitigate spectre style branch history side channels")
Cc: stable@vger.kernel.org
Cc: Scott Bauer <sbauer@quicinc.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Trilok Soni <quic_tsoni@quicinc.com>
Link: https://lore.kernel.org/r/20250107120555.v4.3.Iab8dbfb5c9b1e143e7a29f410bce5f9525a0ba32@changeid
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
The code for detecting CPUs that are vulnerable to Spectre BHB was
based on a hardcoded list of CPU IDs that were known to be affected.
Unfortunately, the list mostly only contained the IDs of standard ARM
cores. The IDs for many cores that are minor variants of the standard
ARM cores (like many Qualcomm Kyro CPUs) weren't listed. This led the
code to assume that those variants were not affected.
Flip the code on its head and instead assume that a core is vulnerable
if it doesn't have CSV2_3 but is unrecognized as being safe. This
involves creating a "Spectre BHB safe" list.
As of right now, the only CPU IDs added to the "Spectre BHB safe" list
are ARM Cortex A35, A53, A55, A510, and A520. This list was created by
looking for cores that weren't listed in ARM's list [1] as per review
feedback on v2 of this patch [2]. Additionally Brahma A53 is added as
per mailing list feedback [3].
NOTE: this patch will not actually _mitigate_ anyone, it will simply
cause them to report themselves as vulnerable. If any cores in the
system are reported as vulnerable but not mitigated then the whole
system will be reported as vulnerable though the system will attempt
to mitigate with the information it has about the known cores.
[1] https://developer.arm.com/Arm%20Security%20Center/Spectre-BHB
[2] https://lore.kernel.org/r/20241219175128.GA25477@willie-the-truck
[3] https://lore.kernel.org/r/18dbd7d1-a46c-4112-a425-320c99f67a8d@broadcom.com
Fixes: 558c303c97 ("arm64: Mitigate spectre style branch history side channels")
Cc: stable@vger.kernel.org
Reviewed-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20250107120555.v4.2.I2040fa004dafe196243f67ebcc647cbedbb516e6@changeid
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Qualcomm Kryo 400-series Gold cores have a derivative of an ARM Cortex
A76 in them. Since A76 needs Spectre mitigation via looping then the
Kyro 400-series Gold cores also need Spectre mitigation via looping.
Qualcomm has confirmed that the proper "k" value for Kryo 400-series
Gold cores is 24.
Fixes: 558c303c97 ("arm64: Mitigate spectre style branch history side channels")
Cc: stable@vger.kernel.org
Cc: Scott Bauer <sbauer@quicinc.com>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Acked-by: Trilok Soni <quic_tsoni@quicinc.com>
Link: https://lore.kernel.org/r/20250107120555.v4.1.Ie4ef54abe02e7eb0eee50f830575719bf23bda48@changeid
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Add guest_tsc_protected member to struct kvm_arch_vcpu and prohibit
changing TSC offset/multiplier when guest_tsc_protected is true.
X86 confidential computing technology defines protected guest TSC so that
the VMM can't change the TSC offset/multiplier once vCPU is initialized.
SEV-SNP defines Secure TSC as optional, whereas TDX mandates it.
KVM has common logic on x86 that tries to guess or adjust TSC
offset/multiplier for better guest TSC and TSC interrupt latency
at KVM vCPU creation (kvm_arch_vcpu_postcreate()), vCPU migration
over pCPU (kvm_arch_vcpu_load()), vCPU TSC device attributes
(kvm_arch_tsc_set_attr()) and guest/host writing to TSC or TSC adjust MSR
(kvm_set_msr_common()).
The current x86 KVM implementation conflicts with protected TSC because the
VMM can't change the TSC offset/multiplier.
Because KVM emulates the TSC timer or the TSC deadline timer with the TSC
offset/multiplier, the TSC timer interrupts is injected to the guest at the
wrong time if the KVM TSC offset is different from what the TDX module
determined.
Originally this issue was found by cyclic test of rt-test [1] as the
latency in TDX case is worse than VMX value + TDX SEAMCALL overhead. It
turned out that the KVM TSC offset is different from what the TDX module
determines.
Disable or ignore the KVM logic to change/adjust the TSC offset/multiplier
somehow, thus keeping the KVM TSC offset/multiplier the same as the
value of the TDX module. Writes to MSR_IA32_TSC are also blocked as
they amount to a change in the TSC offset.
[1] https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git
Reported-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Message-ID: <3a7444aec08042fe205666864b6858910e86aa98.1728719037.git.isaku.yamahata@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Push down setting vcpu.arch.user_set_tsc to true from kvm_synchronize_tsc()
to __kvm_synchronize_tsc() so that the two callers don't have to modify
user_set_tsc directly as preparation.
Later, prohibit changing TSC synchronization for TDX guests to modify
__kvm_synchornize_tsc() change. We don't want to touch caller sites not to
change user_set_tsc.
Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
Message-ID: <62b1a7a35d6961844786b6e47e8ecb774af7a228.1728719037.git.isaku.yamahata@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Opening and closing tokens can also match on words with common prefixes
like "Endsysreg" vs "EndsysregFields". This could potentially make the
script go wrong in weird ways so make it fall through to the fatal
unhandled statement catcher if it doesn't fully match the current
block.
Closing ones also get expect_fields(1) to ensure nothing other than
whitespace follows.
Signed-off-by: James Clark <james.clark@linaro.org>
Acked-by: Will Deacon <will@kernel.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20250115162600.2153226-3-james.clark@linaro.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This is a sysreg block so close it with one. This doesn't make a
difference to the output because the script only matches on the
beginning of the word to close blocks which is correct by coincidence
here.
Signed-off-by: James Clark <james.clark@linaro.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/20250115162600.2153226-2-james.clark@linaro.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
1. Google GS101:
- Disable GSA core pinctrl because its registers are not available for
normal world.
- Add APM (Active Power Management) mailbox and the ACPM firmware nodes.
- Add new boards: Google Pixel 6 Pro (Raven).
- Enable framebuffer and reboot-mode.
2. Exynos990:
- Add PERIS clock controller, MCT timer
3. Exynos8895:
- Define all remaining serial engine (USI) and syscon nodes, add MMC.
- Enable microSD and touchsreen on Samsung Galaxy S8 (dreamlte).
4. ExynosAutov920: Add UFS and CPU cache information.
5. Various cleanups.
This includes two topic branches with DT bindings, which might be shared
with other trees depending on needs:
1. for-v6.15/samsung-clk-dt-bindings with Exynos990 clock controller
header constants.
2. for-v6.15/samsung-soc-dt-bindings with Exynos USI serial engines
header constants rework.
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmfN4bEQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD1wy7EACAh54/LUmLUP2RDSVPAXsYXkyiL+xbvdWQ
Twa0rp6szLxfuTxQgH3oPGKuQ9f/zHJ+ZgXzf5gTUDlIxhvY2TCoKTNKbEaobDSW
pCRoBKYogpqeJ7UBC9uTwZlWvI6flbgb7riFYUa2sOFbwCid0rvlo/TeqR8OTuWj
NkYI6jfjRWD9qbriW+B9xPW2tgb+jMQGlUKDbDcaF9TRK4XEhLmHiQWudnUXbdSR
LuJgBu7+T0CRwiUymp3IMeNK8Qxcv/2MdqYHZjIwX2S4Ftv2u+JbRBViUROOsEQX
Rd8LztrLtyyRiqS4Jchc29XPDAEiiWIkJhbdJW5k3Kffk2ADAQznQSgSYhQ7kdzB
nAKhGOstCITUnec9nQuS/hzT7wnpOkpBjRCiZfdKV66Rp2b32rDcNskwvUaRu1oV
lclzHJWnGQRtTNQ2AQBE4t4Cl+79UopO1r5Y4F4q4VM5zTcp4VttLJdt4NQIq6Mk
mgSC8U9aa4YmB+wWthTIaASXI2ml4xj/DA75QdBbIgVNNvyJPiaFQvBsJW1jQ5E9
ZzScu9nju3SjOezDtEZLk3aLRrE8D8bB9lWYveim7m3HsmVFTsYBqrr8uWJrlwma
kzqPOlLSzVgEomM7mRC/OgjVg70ds6krDR+sDhYC3y0w0Xdgx9nwIKFDGBLBO0QQ
p0225H4AGA==
=RKN2
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfUa6EACgkQYKtH/8kJ
UieFAhAAyE7m6jdNTkJStfCQjIXHbxdi6yKogmkduUpZzcIm0Wb5yShey6Sv6Boc
HLLI8QG56o81pKshhn4yJSfphT7M0gSauhvEBl8xAgli6ysZ9MGhRaL+OqM2xvPO
6x2csEpWEvKSLjtrFWOUg9F0szParJh29DwjzM9xapjjLG2UB2+pLgNYOCAy4xt8
2cRUbTCIHM2AwfNL1wRIJG07Ji68QLCQAiPnuLBzUnvm4xvDxk6QXNcS1+kHLalS
/AdPGsOPrcnll2b5uuvcysmSmRdN2urUCLMWx1dBed3JqmsSwXVGW7IdV0i0c4da
cwPDkwu6IVM+fAV225DSwQ7TDUK+mVblyx84vW2SeVY5QZy60zlIJz2wx7cX0+yd
rkVAIRmucXcwDd4YT5gZiCfPXph0C0GRIHlefalSOG1dyJmH7NaO1YezdfSqtFcQ
ksCBFB+VUUZlslxd3hd9fj9Hj4sDoaqH8U2v4/6uT1nuD+ujoP4nKKgf+tapn1Zu
JhEzApiv+Yr22n8DhZMiBs8F7toldlUmN4lIDEkq2PqnXxYYTZ7FpNLKRofXlxAE
NKVKm4RWGMjWLl4i9svKOyKwh9VzktxwOxlZBVqYMWDmV/LLm0+394VIRcbAA6Ij
IOqjJzWxidSTDHjF9wM9aCT/BfnqynBULRpqStyjEZZyBg51ei8=
=tdEq
-----END PGP SIGNATURE-----
Merge tag 'samsung-dt64-6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt
Samsung DTS ARM64 changes for v6.15
1. Google GS101:
- Disable GSA core pinctrl because its registers are not available for
normal world.
- Add APM (Active Power Management) mailbox and the ACPM firmware nodes.
- Add new boards: Google Pixel 6 Pro (Raven).
- Enable framebuffer and reboot-mode.
2. Exynos990:
- Add PERIS clock controller, MCT timer
3. Exynos8895:
- Define all remaining serial engine (USI) and syscon nodes, add MMC.
- Enable microSD and touchsreen on Samsung Galaxy S8 (dreamlte).
4. ExynosAutov920: Add UFS and CPU cache information.
5. Various cleanups.
This includes two topic branches with DT bindings, which might be shared
with other trees depending on needs:
1. for-v6.15/samsung-clk-dt-bindings with Exynos990 clock controller
header constants.
2. for-v6.15/samsung-soc-dt-bindings with Exynos USI serial engines
header constants rework.
* tag 'samsung-dt64-6.15' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: (25 commits)
arm64: dts: tesla: Change labels to lower-case
arm64: dts: exynos: gs101: Change labels to lower-case
arm64: dts: exynosautov920: add ufs phy for ExynosAutov920 SoC
arm64: dts: exynosautov920: add CPU cache information
arm64: dts: exynos: gs101: add ACPM protocol node
arm64: dts: exynos: gs101: add AP to APM mailbox node
arm64: dts: exynos: gs101: add SRAM node
arm64: dts: exynos: gs101: add reboot-mode support (SYSIP_DAT0)
arm64: dts: exynos: gs101: align poweroff writes with downstream
arm64: dts: exynos: gs101: drop explicit regmap from reboot nodes
arm64: dts: exynos8895: Rename PMU nodes to fixup sorting
arm64: dts: exynos8895-dreamlte: enable support for the touchscreen
arm64: dts: exynos8895-dreamlte: enable support for microSD storage
arm64: dts: exynos8895: add a node for mmc
arm64: dts: exynos8895: define all usi nodes
arm64: dts: exynos8895: add syscon nodes for peric0/1 and fsys0/1
arm64: dts: exynos990: Rename and sort PMU nodes
arm64: dts: exynos990: Add CMU_PERIS and MCT nodes
dt-bindings: soc: samsung: usi: add USIv1 and samsung,exynos8895-usi
dt-bindings: clock: exynos990: Add CMU_PERIS block
...
Link: https://lore.kernel.org/r/20250309185601.10616-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
TDX needs to free the TDR control structures last, after all paging structures
have been torn down; move the vm_destroy callback at a suitable place.
The new place is also okay for AMD; the main difference is that the
MMU has been torn down and, if anything, that is better done before
the SNP ASID is released.
Extracted from a patch by Yan Zhao.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Radxa Rock 4D (rk3576), Firefly ROC-RK3576-PC, Photonicat (rk3568)
New overlays: Video-adapters for Theobroma boards and one adapter used
in hw test scenarios.
Interesting bigger changes contain clock support for rk3528; support for
the hdmi1 controller as well as hdmi-audio support on both controllers on
rk3588; the hdmi-receiver of the rk3588 landed, and rk3576 got basic
graphics support and can now do hdmi output.
Another big block is that we're now doing overlays way better and are
including build-testing for applied overlays to the base dtb - similar
to how other arches already do this.
Of cours a big list of more controllers for rk3576 (nvmem, sfc), rk3588
(rng, spdif, regulator for gpu power-domain) and rk3528 (saradc, pinctrl)
And a huge number of board-level improvements and additions.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmfMhrcQHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgS+yCACGOX4BatsdndoOWcr+SeySPVq8CWGONLyk
WPPFC/2JA/a+oFr1YurPZW3+mVfL1ZVauqO7NZluE+6CJOc8+FqobkMOIvJJv15J
jqhGGFLy83IUVwErgGpaxtwQNNPoQahSJuEDmv161knThRaTIjW1w/nrVcEMhSWp
YX73mKQcV2jUbQC/wfJzcryhAA5WJP4NGkPhO34PEyASiSbxsCpHIrWaZb1/EfBP
4nI6mSr1FpQgNsByUQPlSTbN5Yja9/BBWRZ42MIIyPlKKw/TqnMcW4eeHqhA5DS8
nNbZpHnc0Oz6SPAgSSQj0RYRf2UhubxH46ileWBuMf7IG049Sl/J
=yF4g
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfUas0ACgkQYKtH/8kJ
UicarRAAuLrdhmWzSJCLo+Cot4LUzh8+l9DRpsmr++wkUyHDpDY/n6y78xqPpPE/
6Xq2PiVRypr7A/4wQn+7zYFjujlMYTceyMGGoyMwh3iQXD/u4OrEtHlOir1YEPS9
zEf7c7Lk6e0WgA1S4tTbKkH7OK7+M8S9fiFW9UCXTvK9+Xp1CjXSKuDlHqvXqDOs
HQtZ587868iYj05hBgLavD0Wucedo+ntuYGMnF0a3zPf2m2q4dc5irdoAAVpwMyJ
LhCt59rSR0ZfqviW/pgOg1d5B86cVDzi4CCB6b81MQnE0T0/B19lt68nwB8b+Yu0
MqKoIGt3WWN0SJH4taTt0VGwSwKqtymqyVl1bemCwNwxT5cNmRqcQCxaglTKInQg
RBkPuxK//HnknD1nHtWBi47iBpCQW88waG91WivY2iaJCa317C3B+m76iMdBIDGR
ZkjymDjtrEHekJuyJH4ksDqyR0FI/WPWotO9Xpa0yscm92N3Ld/ghqtUw7guDy97
cdSLl4HYSl5cM3eWlBuyeq4pvFnWQ8IXObO4UdoNYNBS/cE9rV/OYqiXxoRAEVey
i3gUsgHtcmyfVnnqGuFC/6obC9LGWJq4xnyccsPERI6dEDERhjCx9xNjUuxblfT5
kNzxBK8a8FpSoQjJ47nJat/xMIwPoWBlOsGp7joKcRYBXmgGChs=
=EFnK
-----END PGP SIGNATURE-----
Merge tag 'v6.15-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt
New boards: MNT-Reform2 laptop (rk3588), OrangePi5-Ultra (rk3588),
Radxa Rock 4D (rk3576), Firefly ROC-RK3576-PC, Photonicat (rk3568)
New overlays: Video-adapters for Theobroma boards and one adapter used
in hw test scenarios.
Interesting bigger changes contain clock support for rk3528; support for
the hdmi1 controller as well as hdmi-audio support on both controllers on
rk3588; the hdmi-receiver of the rk3588 landed, and rk3576 got basic
graphics support and can now do hdmi output.
Another big block is that we're now doing overlays way better and are
including build-testing for applied overlays to the base dtb - similar
to how other arches already do this.
Of cours a big list of more controllers for rk3576 (nvmem, sfc), rk3588
(rng, spdif, regulator for gpu power-domain) and rk3528 (saradc, pinctrl)
And a huge number of board-level improvements and additions.
* tag 'v6.15-rockchip-dts64-1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (89 commits)
arm64: dts: rockchip: Add SPI NOR device on the ROCK 4D
arm64: dts: rockchip: Add SFC nodes for rk3576
arm64: dts: rockchip: Add maskrom button to Radxa E20C
arm64: dts: rockchip: Add SARADC node for RK3528
arm64: dts: rockchip: Add user button to Radxa E20C
arm64: dts: rockchip: Add leds node to Radxa E20C
arm64: dts: rockchip: Add HDMI support for rock-4d
arm64: dts: rockchip: enable SCMI clk for RK3528 SoC
arm64: dts: rockchip: Enable HDMI receiver on rock-5b
arm64: dts: rockchip: Add device tree support for HDMI RX Controller
arm64: dts: rockchip: Add rk3528 QoS register node
dt-bindings: mfd: syscon: Add rk3528 QoS register compatible
arm64: dts: rockchip: add MNT Reform 2 laptop
dt-bindings: arm: rockchip: Add MNT Reform 2 (RCORE)
dt-bindings: soc: rockchip: Add RK3528 VPU GRF syscon
dt-bindings: soc: rockchip: Add RK3528 VO GRF syscon
arm64: dts: rockchip: Enable hdmi out display for rk3576-evb-v10
arm64: dts: rockchip: Enable hdmi display on sige5
arm64: dts: rockchip: Add hdmi for rk3576
arm64: dts: rockchip: Add vop for rk3576
...
Link: https://lore.kernel.org/r/13791512.uLZWGnKmhe@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This contains a patch to remove an unusable key that was erroneously
exposed as well as a fix to support GPUs with a large amount of video
memory on IGX Orin.
Finally, some additional devices, such as a temperature sensor, are
enabled on Jetson TX1, the output voltage of some pins is adjusted and
the VDD_LCD_1V8_DIS power supply now uses the correct enable GPIO.
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmfLL9MACgkQ3SOs138+
s6Eoeg/+IEbLEwrIe1YugGzBF99Bhyaffvbh8GM/tp/EUyyrwOvzN1ROk7EFbtSY
WyHWPoajqyUvCccHG+ZaB/tLIVjgHZH3SZ2WZuoI7q0mc1n8yBkw3qdw/WcVh9ud
LeTaFR6059TE3cVZBDeO5AUsamo7EZLoypLY6WKZe/4VEC2SCcs3ouF1j6AazONa
yTFmALoj1s4Aerr2kJfn5HMOYh1aEfmMqm3g+RnXcp/WRGnkoh1L0St+9n30krC/
rZfWPM8o06jTu+SJmYJOWcXaHFs5rroV4MWZg0joez1tMZY3pHTBrJSZO1z+hizK
8p7FtNbUILcVo9PXFZ5lOfm0l08mQ5Xl2YkWoSsXbxbc42UAALlhfN5fmbJ1v2sv
iRxuaXoNlFoVrvEagGY4r0J/pPLU0OuAGIemob/oY42+eRVIUbixZ9naBlB8yMqh
SaQ9ciTwdqq+EYvjgj/6HKC9cGr8MMtZEfkN3oLCD0gqt6Lzq9OH5f1x6/0YI3JX
7B72rfwukT3o0mRcJIUz3D/2W9FHQXZydoExeRIGm8o0bDFzFRi/gf4zgW1LI64/
DdgnUK7I6R7fgcJRwgPTe1OmhyCbP865KhgDGuPR8DvctAiGeK0PdAwXYIbDi0OP
8yHsUHVzEh7tPMhu9dQR/oL0OwL7ngVYWSjZ0NRbaDw8eaD0Nks=
=f5mG
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfUaooACgkQYKtH/8kJ
UifbuRAAuv5D14B2Aqnx24EDIPX4ztabKekBINWC1bMcMqqMOTgiWqsxRg07qT8J
eKV1MMAquk889MqsrKhr48EKX4QznboFkZwI4UrLd+kzM02puZOQtkrRkTKL02Q4
p9zAScx6MIhQseuY10+GfYC6d1y+F89qzrSoDKvD4kMEblNOqT/54iZwPtDiYZi5
04+Ou0/96ikV89M6p6MRcl6R3QanA85rJwHiS+3DW+JFz0VGQ39Dmi3N9ubT5Psp
prjodBjtfgzKvuArjVa2RiRe6jwPFtQiOiUEr60mjUJCxOZrkgWTzK6PCyGpiBd9
9TUkSMss7lB2d4AXVOgQtMxo5yyGD2L6X+2FPWTQstvo5Je/iDhVPkPQUTAWwZB4
WLVzhLXLE5jd/zto80Q5icKVIllGRsJeW/pythIDr9YkpB6Zo/lq8MH/ycJtP1R2
ku1quhJYJ8gp1GE6iwYB3JgCD7gluvDZ/kkVMfZH3vOcUSp4PZ1OMSLhg+a/sUYZ
Pv9l2GlUQ5C6H6yf/F8VQKLT5xZCo/iQw6AdJlPCv0r+hNxgDjvhcURO7V1zxRbt
Y6DwChii2SXJyYu/Cvd4KW6Kn3603OxzcJEcb+/3tC9gzdBVGtU1LOnvyic7rmZm
9iqIht8NtHreshVt/VEriUFwbs/w3IcHZUZ6hZNduFF8ZvM9Mw8=
=0hwA
-----END PGP SIGNATURE-----
Merge tag 'tegra-for-6.15-arm64-dt-v2' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt
arm64: tegra: Device tree changes for v6.15-rc1
This contains a patch to remove an unusable key that was erroneously
exposed as well as a fix to support GPUs with a large amount of video
memory on IGX Orin.
Finally, some additional devices, such as a temperature sensor, are
enabled on Jetson TX1, the output voltage of some pins is adjusted and
the VDD_LCD_1V8_DIS power supply now uses the correct enable GPIO.
* tag 'tegra-for-6.15-arm64-dt-v2' of https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
arm64: tegra: p2180: Add TMP451 temperature sensor node
arm64: tegra: p2597: Enable TCA9539 as IRQ controllers
arm64: tegra: Define pinmuxing for gpio pads on Tegra210
arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator
arm64: tegra: Resize aperture for the IGX PCIe C5 slot
arm64: tegra: Remove the Orin NX/Nano suspend key
Link: https://lore.kernel.org/r/20250307174938.3456275-1-thierry.reding@gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Test case "stat_all_pmu.sh" is not correctly checking 'perf stat' output
due to a poor design. Firstly, having the 'set -e' option with a trap
catching the sigexit causes the shell to exit immediately if 'perf stat' ends
with any non-zero value, which is then caught by the trap reporting an
unexpected signal. This causes events that should be parsed by the if-else
statement to be caught by the trap handler and are reported as errors:
$ perf test -vv "perf all pmu"
Testing i915/actual-frequency/
Unexpected signal in main
Error:
Access to performance monitoring and observability operations is limited.
Secondly, the if-else branches are not exclusive as the checking if the
event is present in the output log covers also the "<not supported>"
events, which should be accepted, and also the "Bad name events", which
should be rejected.
Remove the "set -e" option from the test case, correctly parse the
"perf stat" output log and check its return value. Add the missing
outputs for the 'perf stat' result and also add logs messages to
report the branch that parsed the event for more info.
Fixes: 7e73ea4029 ("perf test: Ignore security failures in all PMU test")
Signed-off-by: Veronika Molnarova <vmolnaro@redhat.com>
Tested-by: Qiao Zhao <qzhao@redhat.com>
Link: https://lore.kernel.org/r/20241122231233.79509-1-vmolnaro@redhat.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
The following commits added new fields/flags to the branch stack field
list:
commit 1f48989cdc ("perf script: Output branch sample type")
commit 6ade6c6460 ("perf script: Show branch speculation info")
commit 1e66dcff7b ("perf script: Add not taken event for branch stack")
Update brstack syntax documentation to be consistent with the latest
branch stack field list. Improve the descriptions to help users
interpret the fields accurately.
Signed-off-by: Yujie Liu <yujie.liu@intel.com>
Reviewed-by: Leo Yan <leo.yan@arm.com>
Reviewed-by: Sandipan Das <sandipan.das@amd.com>
Link: https://lore.kernel.org/r/20250312072329.419020-1-yujie.liu@intel.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
"spi-controller" is not a documented property nor used anywhere, so drop
it.
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250306-dt-amd-fixes-v1-4-011c423ba99a@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The fixed clocks are not part of "simple-bus", so move them out of the
bus to the top-level. In the process, use the preferred node names of
"clock-<freq>". There's also little reason to have multiple fixed
clocks at the same frequencies, so remove them keeping the labels
to minimize the change.
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20250306-dt-amd-fixes-v1-2-011c423ba99a@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
For ACPI we'll build the topology from PPTT and we cannot directly
get the SMT number of each core. Instead using a temporary xarray
to record the heterogeneous information (from ACPI_PPTT_ACPI_IDENTICAL)
and SMT information of the first core in its heterogeneous CPU cluster
when building the topology. Then we can know the largest SMT number
in the system. If a homogeneous system's using ACPI 6.2 or later,
all the CPUs should be under the root node of PPTT. There'll be
only one entry in the xarray and all the CPUs in the system will
be assumed identical.
The framework's SMT control provides two interface to the users [1]
through /sys/devices/system/cpu/smt/control
(Documentation/ABI/testing/sysfs-devices-system-cpu):
1) enable SMT by writing "on" and disable by "off"
2) enable SMT by writing max_thread_number or disable by writing 1
Both method support to completely disable/enable the SMT cores so both
work correctly for symmetric SMT platform and asymmetric platform with
non-SMT and one type SMT cores like:
core A: 1 thread
core B: X (X!=1) threads
Note that for a theoretically possible multiple SMT-X (X>1) core
platform the SMT control is also supported as expected but only
by writing the "on/off" method.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20250311075143.61078-4-yangyicong@huawei.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
On building the topology from the devicetree, we've already gotten the
SMT thread number of each core. Update the largest SMT thread number
and enable the SMT control by the end of topology parsing.
The framework's SMT control provides two interface to the users through
/sys/devices/system/cpu/smt/control
(Documentation/ABI/testing/sysfs-devices-system-cpu):
1) enable SMT by writing "on" and disable by "off"
2) enable SMT by writing max_thread_number or disable by writing 1
Both method support to completely disable/enable the SMT cores so both
work correctly for symmetric SMT platform and asymmetric platform with
non-SMT and one type SMT cores like:
core A: 1 thread
core B: X (X!=1) threads
Note that for a theoretically possible multiple SMT-X (X>1) core
platform the SMT control is also supported as expected but only
by writing the "on/off" method.
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20250311075143.61078-3-yangyicong@huawei.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Currently if architectures want to support HOTPLUG_SMT they need to
provide a topology_is_primary_thread() telling the framework which
thread in the SMT cannot offline. However arm64 doesn't have a
restriction on which thread in the SMT cannot offline, a simplest
choice is that just make 1st thread as the "primary" thread. So
just make this as the default implementation in the framework and
let architectures like x86 that have special primary thread to
override this function (which they've already done).
There's no need to provide a stub function if !CONFIG_SMP or
!CONFIG_HOTPLUG_SMT. In such case the testing CPU is already
the 1st CPU in the SMT so it's always the primary thread.
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
Reviewed-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Link: https://lore.kernel.org/r/20250311075143.61078-2-yangyicong@huawei.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Chips in the DA850 family need to have ARCH_DAVINCI_DA8XX to be selected
in order to enable some peripheral drivers.
This was accidentally removed in a previous commit.
Fixes: dec85a9516 ("ARM: davinci: clean up platform support")
Signed-off-by: David Lechner <dlechner@baylibre.com>
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
* Fix lan966x boot with internal CPU by stopping reset-microchip-sparx5
from indirectly calling devm_request_mem_region() on a memory region
shared with other devices.
-----BEGIN PGP SIGNATURE-----
iI0EABYIADUWIQRRO6F6WdpH1R0vGibVhaclGDdiwAUCZ9RakhcccC56YWJlbEBw
ZW5ndXRyb25peC5kZQAKCRDVhaclGDdiwPnVAQCGYzOCh0I3PuJ1gu6aOOQE2U9+
kXY8q/vjAvODZVXvQAD8D/tpmvz/LhmWQx0DNDPQMBxzgbYZUO8B8I53DnGpJQY=
=FS6A
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfUYm4ACgkQYKtH/8kJ
UiesTw/7BsZI3LNazGxZdGJ2XUgltKDdLDbTiicVttXFbDR03JZJDgzAo/CPVRrK
buW1DSPg2N6U7QANj0DA7R+U6pLDclWWPjOAvZ1X37QE8b3rjB9eagDfmSDZZMxR
EZc0cE/lG116GwbgayJRgaqkZAOENnmt18Z5Iz0a94nkll/w5oGrxemqiGEzBNe7
L73xWtplosSkGRi8vhGEWHjFMxoeNPe4vdec7VzczeuHIhwLfSoRMMHZhMY6x6y/
Du7ACQkN8sz1XJmROg+rpikt8i0QUO4QMP+II6lV6PQyX67gSLfsnaGlesQgeAIq
b5CQy6iA8nhl5XU2lUs65DeqREoSiomgO+uBYkpqkq8hCNoMyvX7ud/epYh5UpSS
LwoDbkXNv9AfIDeJUEPokvBOWwBq+U9bZuucsm2oly0MsidU/mKBEK5ghBzl1DDl
hFl2A/bcNbk2Rmu0xnPUb2UEbMKnyomFlgPBFUFWL50S//u6yRFk0XN8/ePRbwkU
lJe0DINydkZkad6YS3THJ/QH8e987kzMQ6wc5sb1LvfOjWvfjgt75cbZZrOHEyNO
FgrsP5LkXAK+CN0E8fKE42bLx+vArrnviGdQXJp+Ojpclk9U4rupjo2wG86wMejI
SUgoXA+OOgLrv+Na3tPVT+V9aKsDqqfNw6rlmgkvMp88dwfEjy8=
=noiy
-----END PGP SIGNATURE-----
Merge tag 'reset-fixes-for-v6.14' of git://git.pengutronix.de/pza/linux into arm/fixes
Reset controller fixes for v6.14
* Fix lan966x boot with internal CPU by stopping reset-microchip-sparx5
from indirectly calling devm_request_mem_region() on a memory region
shared with other devices.
* tag 'reset-fixes-for-v6.14' of git://git.pengutronix.de/pza/linux:
reset: mchp: sparx5: Fix for lan966x
Link: https://lore.kernel.org/r/20250314164401.743984-1-p.zabel@pengutronix.de
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Address bytes shifted with a single 64 bit page table entry (any page table
level) has been always hard coded as 3 (aka 2^3 = 8). Although intuitive it
is not very readable or easy to reason about. Besides it is going to change
with D128, where each 128 bit page table entry will shift address bytes by
4 (aka 2^4 = 16) instead.
Let's just formalise this address bytes shift value into a new macro called
PTDESC_ORDER establishing a logical abstraction, thus improving readability
as well. While here re-organize EARLY_LEVEL macro along with its dependents
for better clarity. This does not cause any functional change. Also replace
all (PAGE_SHIFT - PTDESC_ORDER) instances with PTDESC_TABLE_SHIFT.
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Ard Biesheuvel <ardb@kernel.org>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: kasan-dev@googlegroups.com
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Link: https://lore.kernel.org/r/20250311045710.550625-1-anshuman.khandual@arm.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Fixes a locking issue in the PDR implementation, which manifest itself
as transaction timeouts during the startup procedure for some
remoteprocs.
A registration race is fixed in the custom efivars implementation,
resolving reported NULL pointer dereferences.
Error handling related to tzmem allocation is corrected, to ensure that
the allocation error is propagated.
Lastly a trivial merge mistake in pmic_glink is addressed.
-----BEGIN PGP SIGNATURE-----
iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmfPntcVHGFuZGVyc3Nv
bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3FpaAQALArEyFsJ+YpCL6zu89Hc0CAzpdi
cRscXIvR7elGIV5c+/XiSRhsF7nLHJ3NoqI0EC9mLZpG60VRKV3rEtbRAhJUpx9E
SFuFeeq1YYoBwlt4MTIua3cZJB4d0zxrqBMT/EdqmwY7saFCL7S6ElLunClGejwv
Pf/KxnP0eQtwufhyycvlhpKnX5HeynNiI0Nv7fdRlUizWXkiZitH34ZB3rwMrjM8
E264qMz3H8+nc1ZY1Nout6uURDgHXs/kNaUY5KMTP1ntv3a8Xgck6Po91y8jQ52Q
UdE5IcyWG+obI2XBFjZVtCuLNC1E833Si0eIErrFQjePUnv647FEXQwiuxdgyMS+
ky7abqighG8oK8926dB8WHVc8pQ44+I1JT/nylbG6U/wSpoh5NKNSW41b0fjzfmJ
VERTU2muF2KZoI034uXlnx6OH7OSxBUdO3ZeMlGscGA/yzpU8OTuLcHy6miHhKxL
LRaW5nMOm7+yBhGzGVRaxzKeOOo96mx6Vd86ymTbpFOlMxNtVmYP8aldfy9GI6Qx
5cgGqKD4Pn4VTO4qhvxZrLVVO9MHxcN/GTPf3oCeLmhnh4oNpvi9qg77KsfHJJGP
2BHhXN/8dQdagZTMFDlS7z1E9fWTTHIzMMc9YLt11UmpBoOImdDldezxpah7Nu/1
NucMfUBufouasN92
=QoB8
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfUYLkACgkQYKtH/8kJ
UifNQRAAxWwmLr5aNWQpzHyQ/fc3oDX9gCV7alxdQvYeTjMhotcFXPgwA8WX9U0+
1hEUbFcrCk56xX14enHnI+NJAWWvKFT4Z1aLCqSXiU5K2RnaG7AGhLaJbdDLTFX6
9+wYCljK5orFIUMTLuc+G7ZqOFcnhhUq9qbEGL5vKTYuuFWjrBadyadYz+wAWg/8
tbzk9P4QLvfEkCQR4Xpgh5OOR3TYY34LgS8U79nKP/ClrzeVI1CGCNFlV5/hvdxA
ORdB1azumlh1/fXEGfw9rm9hy6VcGEN7zGugqu78Ol+DO2OsVNwBZGMKO6oJeDlO
jNQLfl69eHYkCsNCQ6gHTqVEuI3MGfjSZofmeG/K1FiYmWDNu3hVXp3pVYMi09yc
pJNFAjGEib4HDlmJiX32eGOJrRYBdukFEMxZWVHTcRm1HVs+f5MwZ/rExD9yRzbE
VJ+uq7+7Xd0y4pByFxbJ4LdMXvEU2oeG9DAnA70xYaAWST3Fq8R9q6i72R/+8rdz
JvCSbngh52eG14hvCClfZLgsef7557DhBJvcbVmb3KJjIYeOw9GI12RpR2fz3rOk
6bArIYdVglbL3Anpugxrf5vdcWDsjI0bEGSimjV3wIeqVp65XsscGAG9SyMPZCTo
9lntpPrrw2fSFKBDjxO8j8MmUl3ClguiTfUqNUtC75cubUS0Ce8=
=mQFt
-----END PGP SIGNATURE-----
Merge tag 'qcom-drivers-fixes-for-6.14' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
Qualcomm driver fixes for v6.14
Fixes a locking issue in the PDR implementation, which manifest itself
as transaction timeouts during the startup procedure for some
remoteprocs.
A registration race is fixed in the custom efivars implementation,
resolving reported NULL pointer dereferences.
Error handling related to tzmem allocation is corrected, to ensure that
the allocation error is propagated.
Lastly a trivial merge mistake in pmic_glink is addressed.
* tag 'qcom-drivers-fixes-for-6.14' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
soc: qcom: pdr: Fix the potential deadlock
firmware: qcom: uefisecapp: fix efivars registration race
firmware: qcom: scm: Fix error code in probe()
soc: qcom: pmic_glink: Drop redundant pg assignment before taking lock
Link: https://lore.kernel.org/r/20250311022509.1232678-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Revert the change to marking SDM845 SMMU dma-coherent, as this is
reported not to be true.
-----BEGIN PGP SIGNATURE-----
iQJJBAABCAAzFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmfPOecVHGFuZGVyc3Nv
bkBrZXJuZWwub3JnAAoJEAsfOT8Nma3Fad8P/1QzDN8Ce3q/z2nIP/C53XLbW0VX
RnFeGOqv9E2hZmlnB8n7N7OPe0tje+UTvM+2rogiQtxx1rgmbLdeoiLTB/L7I+jt
PQHTtpKbISAZhyxvvY2siU51bWmQOZvzovPufPkChUhEPgl3TvDrh4uME+XVV/ii
l8rbr5Yi8HFChPSKZnxOLYcpRFv/01Cx1/IoQOyo/lY/SlLpXqpNmPNOMvY8exfw
6n4tAsRc5EheZxViuAqzZZz5X/xEry6hQRKgcUCN4YJJ42/5VL5KhC5J8qIl/ZPQ
sTFyBOBOZi/0iKBBpfmCqk//Qf75ReMDLpIACFJnXHJi2GkEQBqrR+TIYvgXq2BQ
f2be8u+Td54LjUesHWDa9e/yh4s5+0/S0c4+AIc3O6hmcZjoWlcFsPIlMohvNtmW
Z7coDYcS0K5dR+yWMxZHasT2D/tjZnATWCmLeR/BBv/j7CjrfNQ/vNcV716usZd0
0eJV1XqLA55by+6gyiEJxM+rx49Y8kNl9n55YpAM/gR+qzJ+GO0yxHJI/J6PM25M
/dvXSUOGiyJnSK/MoiJauEm41E23x5AajKUFSIbPusqZFyUXoOmXVZ6OdlMXMaTv
dRxnAEO+3oJlksI1pKvGmQvRGUo3JhYEdwNhyf/K5sQG8WhbIQDknbbxp+CC74IP
rQm/hB4zN1MnSbRr
=ux8B
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmfUYJMACgkQYKtH/8kJ
Uif1XxAAxYfIGjwrfAP42tbBN7TiYlZq2ChnP1VoXdo7DCYqOGxqiqD1BYDlkUtW
YArFSWQJLJEsq+ULIYd7vEFMTMPgVrQBGnz6LpbDEVHNczInkRvO51Yys9zMlNYh
pdTXZPzTgflnci1eJu9PUL8duFyk2z6Xa6E3uhe7It1e8AQKSQGPdEKEYnxIuq0N
uLpunHEqtZSK+KYkkQJVvQitfPULtnPeug5njrdFzG8jEqn9QF+PH+SOcJmXiLRX
97hDpB8nv7bX4MIDLCBd5nli4X7nCT1x5k8V/WHoKsoKFZOMLanz4nlcLWo+jAWa
jlR4q+EbBNQ0jxtQQU5xoKH1Hrr8Myy0ZCKUXxcX0q5CTnmBH6PTcb6ox58MUu5p
Qkc3GMM8XIslik9omGfESClqY1nZit0pNThhzLWQW/gmBG6hYvUmd+irnqGI61ST
HfTRv9ahZl19ZAIpnGrMKnIXvouMEW8zDoJQ6bRgqUveX3sV0BLbcFurfpH11KOf
y35pfNzyVFTDtSVGROIh4KeiZNOQJjbDsHwwNxNzZPyX+RHxBwwmRjTSYrL1PES+
3BGUwYwQ1EuMqTGED+YN/Ns5ZYUglU4Gv5YNewjlHKsywaOqEYiXohGwQE5utKZX
uOkZG2LI9IHp3sxeARf/Ab6EK7VcCD0ySNw537ghldti4ROkYKk=
=Kr2P
-----END PGP SIGNATURE-----
Merge tag 'qcom-arm64-fixes-for-6.14' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into arm/fixes
Qualcomm Arm64 Devicetree fixes for v6.14
Revert the change to marking SDM845 SMMU dma-coherent, as this is
reported not to be true.
* tag 'qcom-arm64-fixes-for-6.14' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
Revert "arm64: dts: qcom: sdm845: Affirm IDR0.CCTW on apps_smmu"
Link: https://lore.kernel.org/r/20250310191409.1208520-1-andersson@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
'destroy_workqueue()' already drains the queue before destroying it, so
there is no need to flush it explicitly.
Remove the redundant 'flush_workqueue()' calls.
This was generated with coccinelle:
@@
expression E;
@@
- flush_workqueue(E);
destroy_workqueue(E);
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Reviewed-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Signed-off-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250312073404.1429992-1-nichen@iscas.ac.cn
We are no longer depending on legacy device trees so
drop the no compatible check for NAND and OneNAND
nodes.
Suggested-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Roger Quadros <rogerq@kernel.org>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20250114-omap-gpmc-drop-no-compatible-check-v1-1-262c8d549732@kernel.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The WCD938x codec provides two controls for each of the MIC_BIASn outputs:
- "MIC BIASn" enables an internal regulator to generate the output
with a configurable voltage (qcom,micbiasN-microvolt).
- "VA MIC BIASn" enables "pull-up mode" that bypasses the internal
regulator and directly outputs fixed 1.8V from the VDD_PX pin.
This is intended for low-power VA (voice activation) use cases.
The audio-routing setup for the X1E80100 CRD currently specifies both
as power supplies for the DMICs, but only one of them can be active
at the same time. In practice, only the internal regulator is used
with the current setup because the driver prefers it over pull-up mode.
Make this more clear by dropping the redundant routes to the pull-up
"VA MIC BIASn" supply. There is no functional difference except that we
skip briefly switching to pull-up mode when shutting down the microphone.
Fixes: 4442a67eed ("arm64: dts: qcom: x1e80100-crd: add sound card")
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Link: https://lore.kernel.org/r/20241203-x1e80100-va-mic-bias-v1-2-0dfd4d9b492c@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
The WCD938x codec provides two controls for each of the MIC_BIASn outputs:
- "MIC BIASn" enables an internal regulator to generate the output
with a configurable voltage (qcom,micbiasN-microvolt).
- "VA MIC BIASn" enables "pull-up mode" that bypasses the internal
regulator and directly outputs fixed 1.8V from the VDD_PX pin.
This is intended for low-power VA (voice activation) use cases.
The audio-routing setup for the ThinkPad X13s currently specifies both
as power supplies for the DMICs, but only one of them can be active
at the same time. In practice, only the internal regulator is used
with the current setup because the driver prefers it over pull-up mode.
Make this more clear by dropping the redundant routes to the pull-up
"VA MIC BIASn" supply. There is no functional difference except that we
skip briefly switching to pull-up mode when shutting down the microphone.
Fixes: 2e498f35c3 ("arm64: dts: qcom: sc8280xp-x13s: fix va dmic dai links and routing")
Signed-off-by: Stephan Gerhold <stephan.gerhold@linaro.org>
Link: https://lore.kernel.org/r/20241203-x1e80100-va-mic-bias-v1-1-0dfd4d9b492c@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Since the Lenovo Thinkpad T14s Gen6 is available with an OLED, add
dedicated a dedicated dts for it.
This is needed because the backlight is handled differently for OLED
panels when compared to LCD ones.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20250314140325.4143779-4-abel.vesa@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Due to the fact that Lenovo Thinkpad T14s Gen6 is available with both
OLED and LCD, the backlight control differs HW-wise. For the LCD variant,
the panel's backlight is controlled via one of the PWMs provided by the
PMK8550 PMIC. For the OLED variant, the backlight is internal to the
panel and therefore it is not described in devicetree.
For this reason, create a generic dtsi for the T14s by renaming the
existing dts. While at it, add a node name to panel and drop the enable
gpio and pinctrl properties from the panel node. Then add the LCD variant
dts file with the old name and describe all backlight related nodes.
So the existing dts will now be used for LCD variant while for OLED new
dts will be added.
Tested-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20250314140325.4143779-3-abel.vesa@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Due to the difference in how the panel backlight is being handled
between the OLED variant and LCD one, it is required to have two
separate DTBs.
So document the compatible string for both the OLED and LCD variants.
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Abel Vesa <abel.vesa@linaro.org>
Link: https://lore.kernel.org/r/20250314140325.4143779-2-abel.vesa@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Add a node for the GT9897 touchscreen found on this smartphone connected
via SPI.
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Luca Weiss <luca.weiss@fairphone.com>
Link: https://lore.kernel.org/r/20250312-fp5-touchscreen-v2-1-4bed270e0065@fairphone.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Correct the clocks property for the uart14 node to fix UART functionality
on QUP2_SE6. The current failure is due to an incorrect clocks assignment.
Change the clocks property to GCC_QUPV3_WRAP2_S6_CLK to resolve the issue.
Signed-off-by: Jyothi Kumar Seerapu <quic_jseerapu@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Fixes: 068c3d3c83 ("arm64: dts: qcom: Add base SM8750 dtsi")
Link: https://lore.kernel.org/r/20250312104358.2558-1-quic_jseerapu@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
In IPQ5424, the bootloader collects the system RAM contents upon a crash
for post-morterm analysis. If we don't reserve the memory region used by
the bootloader, linux will consume it. Upon the next boot after a crash,
the bootloader will be loaded in the same region, which could lead to the
loss of some data. sometimes, we may miss out critical information.
Therefore, let's reserve the region used by the bootloader.
Signed-off-by: Manikanta Mylavarapu <quic_mmanikan@quicinc.com>
Reviewed-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250312094948.3376126-1-quic_mmanikan@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Enable secondary USB controller on QCS8300 Ride platform. Since it is a
Type-A port, the dr_mode has been set to "host". The VBUS to connected
peripherals is provided by TPS2559QWDRCTQ1 regulator connected to the
port. The regulator has an enable pin controlled by PMM8650. Model it as
fixed regulator and keep it Always-On at boot, since the regulator is
GPIO controlled regulator.
Co-developed-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Signed-off-by: Manish Nagar <quic_mnagar@quicinc.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250310104743.976265-1-quic_mnagar@quicinc.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
There is a typo in cpu7_opp9. Fix it to get rid of the following
errors.
[ 0.198043] cpu cpu7: Voltage update failed freq=1747200
[ 0.198052] cpu cpu7: failed to update OPP for freq=1747200
Fixes: 8e0e8016cb ("arm64: dts: qcom: sm8250: Add CPU opp tables")
Signed-off-by: Xilin Wu <wuxilin123@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250308-fix-sm8250-cpufreq-v1-1-8a0226721399@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Add a gpio-keys label for the lid-switch for consistency and to separate
it from the volume-up key (e.g. in /proc/interrupts).
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250307171222.7470-3-johan+linaro@kernel.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Add support for the keypad volume-up key on the debug extension board.
This is useful to have when testing PMIC interrupt handling, and the key
can also be used to wake up from deep suspend states (CX shutdown).
Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
Link: https://lore.kernel.org/r/20250307171222.7470-2-johan+linaro@kernel.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
The preemptively-merged node contains a property absent from the final
bindings. Remove it.
Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Fixes: b16ee3d0cd ("arm64: dts: qcom: x1e80100-romulus: Set up PS8830s")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20250306-topic-dt_bindings_fixups-v1-10-0c84aceb0ef9@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>