Commit graph

1,462,193 commits

Author SHA1 Message Date
Alexey Charkov
b0dd9345c3 dt-bindings: vendor-prefixes: Add Shenzhen Corechips Microelectronics
Add Shenzhen Corechips Microelectronics Co., Ltd., which is a company
producing chips for USB accessories

Link: http://www.corechip-sz.com/enproducts.asp
Signed-off-by: Alexey Charkov <alchark@flipper.net>
Acked-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://patch.msgid.link/20260311-sl6341-v1-1-0a890056f054@flipper.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:03:47 +01:00
Zhaoyang Yu
f2e9bc030d USB: pxa27x_udc: check return value of clk_enable
clk_enable() may fail according to the API contract.
Previously, udc_enable() ignored its return value and returned void.

Modify udc_enable() to return the error code. Additionally, update
all of its callers (pxa_udc_pullup, pxa_udc_vbus_session,
pxa27x_udc_start, pxa_udc_probe, and pxa_udc_resume) to check
this return value and handle the failure properly with necessary
cleanups or rollbacks.

Signed-off-by: Zhaoyang Yu <2426767509@qq.com>
Link: https://patch.msgid.link/tencent_46693FE6DB434ACFB7412B16F6078AC01A06@qq.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:03:34 +01:00
Krishna Kurapati
0c8ee85057 usb: typec: ucsi: Add UCSI_USB4_IMPLIES_USB quirk for X1E80100
On X1E80100, when we connect a USB4 capable dock, the PARTNER_FLAGS
indicate USB4_GEN3 being set whilst keeping the PARTNER_FLAGS_USB
cleared. Due to this, during ucsi_partner_change call, the usb role
is marked as ROLE_NONE and passed to DWC3 controller the same way.

Fix this by adding UCSI_USB4_IMPLIES_USB quirk and check for it to
decide and pass on proper ROLE information to DWC3 layer.

Signed-off-by: Krishna Kurapati <krishna.kurapati@oss.qualcomm.com>
Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Link: https://patch.msgid.link/20260312101431.2375709-1-krishna.kurapati@oss.qualcomm.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:03:14 +01:00
Oliver Neukum
849fbecdf7 iowarrior: use normal memory in write path
There is just no point in using coherent memory.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20260312095328.1594015-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:02:41 +01:00
Oliver Neukum
bcbdfc7fad iowarrior: use interruptible lock in iowarrior_write()
The function itself, if it has to wait to perform
IO, use interruptible sleep. Hence the sleep needed
to avoid the write code path racing with itself should also
use interruptible sleep.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20260312094619.1590556-2-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:02:20 +01:00
Oliver Neukum
56dd29088c usb: iowarrior: remove inherent race with minor number
The driver saves the minor number it gets upon registration
in its descriptor for debugging purposes. However, there is
inevitably a window between registration and saving the correct
minor in a descriptor. During this window the debugging output
will be wrong.
As wrong debug output is worse than no debug output, just
remove it.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20260312094619.1590556-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:02:17 +01:00
Oliver Neukum
916aeaffad USB: uas: give the error handler the correct name
A UAS device can in principle contain multiple busses.
A reset on the USB level will reset them all. We
cannot reset a single bus.
In practical terms this does not matter, as only
one method of reset is implemented, but we should
not lie.

Signed-off-by:  Oliver Neukum <oneukum@suse.com>
Link: https://patch.msgid.link/20260312123435.2015029-1-oneukum@suse.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:01:09 +01:00
Rosen Penev
03cd4fd620 usb: fhci: use kzalloc_flex for priv struct
Convert kzalloc_obj(s) to kzalloc_flex to save an allocation.

Add __counted_by to get extra runtime analysis. Move counting variable
assignment immediately after allocation as required by __counted_by.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20260313003456.124270-1-rosenp@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 16:00:34 +01:00
Rosen Penev
341434a444 usb: renesas_usbhs: use kzalloc_flex
Removes one allocation and one free by using a flexible array member.

Also added __counted_by for extra runtime analysis.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://patch.msgid.link/20260311232043.18025-1-rosenp@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 15:51:48 +01:00
Johan Hovold
a1678c4e57 USB: usbip: drop redundant device reference
Driver core holds a reference to the USB device while it is bound to a
driver and there is no need to take additional references unless the
structure is needed after disconnect.

Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.

Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://patch.msgid.link/20260305133851.2952-3-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 15:51:44 +01:00
Johan Hovold
0888c3371a USB: apple-mfi-fastcharge: drop redundant device reference
Driver core holds a reference to the USB device while it is bound to a
driver and there is no need to take additional references unless the
structure is needed after disconnect.

Drop the redundant device reference to reduce cargo culting, make it
easier to spot drivers where an extra reference is needed, and reduce
the risk of memory leaks when drivers fail to release it.

Signed-off-by: Johan Hovold <johan@kernel.org>
Reviewed-by: Bastien Nocera <hadess@hadess.net>
Link: https://patch.msgid.link/20260305133851.2952-2-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-03-18 15:51:44 +01:00
Mikulas Patocka
b7cce3e2cc dm: don't report warning when doing deferred remove
If dm_hash_remove_all was called from dm_deferred_remove, it would write
a warning "remove_all left %d open device(s)" if there are some other
devices active.

The warning is bogus, so let's disable it in this case.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reported-by: Zdenek Kabelac <zkabelac@redhat.com>
Cc: stable@vger.kernel.org
Fixes: 2c140a246d ("dm: allow remove to be deferred")
2026-03-18 15:39:48 +01:00
Guillaume Gonnet
99a2312f69 dm init: ensure device probing has finished in dm-mod.waitfor=
The early_lookup_bdev() function returns successfully when the disk
device is present but not necessarily its partitions. In this situation,
dm_early_create() fails as the partition block device does not exist
yet.

In my case, this phenomenon occurs quite often because the device is
an SD card with slow reading times, on which kernel takes time to
enumerate available partitions.

Fortunately, the underlying device is back to "probing" state while
enumerating partitions. Waiting for all probing to end is enough to fix
this issue.

That's also the reason why this problem never occurs with rootwait=
parameter: the while loop inside wait_for_root() explicitly waits for
probing to be done and then the function calls async_synchronize_full().
These lines were omitted in 035641b, even though the commit says it's
based on the rootwait logic...

Anyway, calling wait_for_device_probe() after our while loop does the
job (it both waits for probing and calls async_synchronize_full).

Fixes: 035641b01e ("dm init: add dm-mod.waitfor to wait for asynchronously probed block devices")
Signed-off-by: Guillaume Gonnet <ggonnet.linux@gmail.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
2026-03-18 15:36:33 +01:00
Loic Poulain
85d98669fa arm64: dts: qcom: monaco: Reserve full Gunyah metadata region
We observe spurious "Synchronous External Abort" exceptions
(ESR=0x96000010) and kernel crashes on Monaco-based platforms.
These faults are caused by the kernel inadvertently accessing
hypervisor-owned memory that is not properly marked as reserved.

>From boot log, The Qualcomm hypervisor reports the memory range
at 0x91a80000 of size 0x80000 (512 KiB) as hypervisor-owned:
qhee_hyp_assign_remove_memory: 0x91a80000/0x80000 -> ret 0

However, the EFI memory map provided by firmware only reserves the
subrange 0x91a40000–0x91a87fff (288 KiB). The remaining portion
(0x91a88000–0x91afffff) is incorrectly reported as conventional
memory (from efi debug):
efi:   0x000091a40000-0x000091a87fff [Reserved...]
efi:   0x000091a88000-0x0000938fffff [Conventional...]

As a result, the allocator may hand out PFNs inside the hypervisor
owned region, causing fatal aborts when the kernel accesses those
addresses.

Add a reserved-memory carveout for the Gunyah hypervisor metadata
at 0x91a80000 (512 KiB) and mark it as no-map so Linux does not
map or allocate from this area.

For the record:
Hyp version: gunyah-e78adb36e debug (2025-11-17 05:38:05 UTC)
UEFI Ver: 6.0.260122.BOOT.MXF.1.0.c1-00449-KODIAKLA-1

Fixes: 7be190e4bd ("arm64: dts: qcom: add QCS8300 platform")
Signed-off-by: Loic Poulain <loic.poulain@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/20260302142603.1113355-1-loic.poulain@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 09:14:48 -05:00
Rosen Penev
500e54d449 thunderbolt: dma_port: kmalloc_array + kzalloc to flex
Use a single allocation with a flexible array member. Simplifies
allocation and freeing.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2026-03-18 14:31:56 +01:00
Mark Brown
5e4ed0320b
ASoC: fix usage of playback_only and capture_only
Shengjiu Wang <shengjiu.wang@nxp.com> says:

Check value of is_playback_only and is_capture_only in
graph_util_parse_link_direction() and initialize playback_only and
capture_only in imx-card.c
2026-03-18 13:26:52 +00:00
Shengjiu Wang
ca67bd564e
ASoC: fsl: imx-card: initialize playback_only and capture_only
Fix uninitialized variable playback_only and capture_only because
graph_util_parse_link_direction() may not write them.

Fixes: 1877c3e793 ("ASoC: imx-card: Add playback_only or capture_only support")
Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20260318102850.2794029-3-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-03-18 13:26:50 +00:00
Shengjiu Wang
0e9fc79132
ASoC: simple-card-utils: Check value of is_playback_only and is_capture_only
The audio-graph-card2 gets the value of 'playback-only' and
'capture_only' property in below sequence, if there is 'playback_only' or
'capture_only' property in port_cpu and port_codec nodes, but no these
properties in ep_cpu and ep_codec nodes, the value of playback_only and
capture_only will be flushed to zero in the end.

graph_util_parse_link_direction(lnk,            &playback_only, &capture_only);
graph_util_parse_link_direction(ports_cpu,      &playback_only, &capture_only);
graph_util_parse_link_direction(ports_codec,    &playback_only, &capture_only);
graph_util_parse_link_direction(port_cpu,       &playback_only, &capture_only);
graph_util_parse_link_direction(port_codec,     &playback_only, &capture_only);
graph_util_parse_link_direction(ep_cpu,         &playback_only, &capture_only);
graph_util_parse_link_direction(ep_codec,       &playback_only, &capture_only);

So check the value of is_playback_only and is_capture_only in
graph_util_parse_link_direction() function, if they are true, then rewrite
the values, and no need to check the np variable as
of_property_read_bool() will ignore if it was NULL.

Fixes: 3cc393d223 ("ASoC: simple-card-utils: Fix pointer check in graph_util_parse_link_direction")
Fixes: 22a507d768 ("ASoC: simple-card-utils: Check device node before overwrite direction")
Suggested-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Link: https://patch.msgid.link/20260318102850.2794029-2-shengjiu.wang@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-03-18 13:26:49 +00:00
Piyush Patle
a809ff6469
ASoC: dt-bindings: adi,ssm2305: Convert to DT schema
Convert the SSM2305 speaker amplifier binding from text format to
DT schema to enable dtbs_check validation.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260318130733.52477-1-piyushpatle228@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-03-18 13:21:20 +00:00
Arnd Bergmann
df3ef89d7e Arm SCMI fixes for v7.0
Few fixes to:
 1. Address a NULL dereference in the SCMI notify error path by ensurin
    __scmi_event_handler_get_ops() consistently returns an ERR_PTR on
    failure, as expected by callers.
 2. Fix a device_node reference leak in the SCPI probe path by introducing
    scope-based cleanup for acquired DT nodes.
 3. Correct minor spelling errors.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmm5AhYACgkQAEG6vDF+
 4piujBAArYDyXqWBvUnPPmqkFi+ogA7jxdWTydTTZmdUWvV4XIS1SCiet0SJtoQk
 KexNPSTzR/dMrNR5NxO5bhsuSyDFM8InvZ13N4MInoQNVHmDJmFXNp9NyjwBtOOi
 8J00E8SeLKFX139j1ZQy/znwSqDpu/u9cMwBH/77U2g3T1+3v4ntTEKe9sSqxsGR
 0untPPLgVJOxvz6SN+V2xmqPmj5Bk+RadEtTUMgs/Y20pqeyHgG1jT6wEpwMQ8vD
 abvi/JadzCo9W0R0UlK2iuVfIiUDwrVUvK7hxsQcYFRIIq4fPTp4xdnLVe6VuQ5y
 QiT2j8B6ckQ2UkggqrGsjt0wsmH5fr183ZnSRuLpwI0ZFzYA8v3WqcYKADK0iRXa
 WkqyjwlVXHh+hikjpEStS56jlOUlXnhyCnaw4zxHOpFRqhACd9AQARFCGlJWvbqa
 Imv0P7dV3kNF/rBY4qjFl6pUyzz6SUjGBX3rTarSgZQ8zFH99k68wJYzNPXbmOFt
 U4ORctpK95ryb76EKPlCXrQbfZplTD1PYHxxaWvpYnKS7qNisuil41exRrxqNHOj
 +Z9E/ieLW2Gp9pNEGPV+2OFAwGcZeNE8pznYOqPU/v9mKObh9/+Fpgv4FwyQN/v9
 0Xh0Cyn986slTBqTEJmbluf0XKjeZY0fsw3OaHOJOwW2FNsNiks=
 =BxTR
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmm6o18ACgkQmmx57+YA
 GNm7ew/+Mf6J/UeVQGTeRNqZ64WMz49cWzY1zmFvaPKzN2xwhTzg3ROrhc3rmOy3
 ym6aBwAsfafEwyvJDt1Y8KxnpkLHkbmy413cw+uX0IcE2DbsYEMarScslvtTLY/5
 g/+6N68fR4WHHcMTaqxuW79qrSuekFaWncXczexzeJFz36Brn0iHQLht8z2rjTjD
 ARQj/daQBi22/BsarUQkYwitsJdwz58/Tcn2bP9TKtSWTlrI8iTaT+3U3M3M46gM
 CBCCmcYihoyejy9D2yogNQ7XQn/I0r4eJgqSJF3AOP8o1bEJZb8SG/3+5XcegvlA
 X+srpSlaYjrfK5CuCKZB64sfQ9nD0WvIqztR3b2MYmLpb1hcqyqr7QXH0pbzN9wL
 LqPINWdTsw080FLH01TRpN4eu/oo0kbFzqpqRoWoJ4WV93WQbczYl7D2ZHNNlcwM
 Mgj8ZoLQNpmYM68MTNflvQKqKLQI9XYgeAI5pLYwVsHWIWn76IBNboetIzyWyaq2
 7JaNaJZ+TL6dN9ykFh8HT9hEVzWRwRT+hxgUEjcj2gH2EqWjvuH+3FSS2dLdC+0E
 IfxDQwFOjc2wk8PxGFtqE6eaTXkVV+gR175xuoe3q/VTnnA4oETqs6TaZ/BWpZvk
 mTv5Gy4bF04SPlclpiFMdXB18pw/cNNa7a68AV/KlppvcvZM/pE=
 =kFM7
 -----END PGP SIGNATURE-----

Merge tag 'scmi-fixes-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/fixes

Arm SCMI fixes for v7.0

Few fixes to:
1. Address a NULL dereference in the SCMI notify error path by ensurin
   __scmi_event_handler_get_ops() consistently returns an ERR_PTR on
   failure, as expected by callers.
2. Fix a device_node reference leak in the SCPI probe path by introducing
   scope-based cleanup for acquired DT nodes.
3. Correct minor spelling errors.

* tag 'scmi-fixes-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  firmware: arm_scmi: Spelling s/mulit/multi/, s/currenly/currently/
  firmware: arm_scmi: Fix NULL dereference on notify error path
  firmware: arm_scpi: Fix device_node reference leak in probe path

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-03-18 14:06:34 +01:00
Arnd Bergmann
dfc80d650b Arm FF-A fix for v7.0
Fix removing the vm_id argument from ffa_rxtx_unmap(), as the FF-A
 specification mandates this field be zero in all contexts except a
 non-secure physical FF-A instance, where the ID is inherently 0.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmm5AUcACgkQAEG6vDF+
 4piAGQ//VXwuSykQ6bwTP2GgfJY3SqJK7rDsyqlyZ0klUqlNTHasip1CPpnZ2sN6
 PYPiiz9yD75EVEF46DPctND8fLyjZQrVPuHC2rzF8UdF+ddN/rPrS2NNuBHua4rw
 NE3Hh0tLUQ9nTUdrOaWhXkMNIuvQiW55cg7/vzstULqJoMtqKSO+GKyvPGyn99cA
 fG+z0WKVOSDs5yp4DSi2BNbXMwmKlV9k+Kzu1oOiRM0RNqxpgiewuaLNnu438itN
 +rkbbDOzIeo7W6ZFsiXNBSDhp0J75kGDGfvbpFCekPFqb/PvAG8cJRAn+IL4zWRd
 zh+95lJTTzuizl0d0bFpYW9Lndp1wYJGA1ja/bolsdPxBPG04bKUV2iv83NWzEr4
 eiqcIAgiaYE3Vm0N8qtftrV4Jw4blaBoCaGvFui80pPAkrLj44/0vsF/YUjZtGhJ
 Sf87LIIrid/1FzGyKR0pP/t/P4Cj9/14seVCZDdmxHCFfRSCeMpEbOVbIrNDT1nf
 KxeMFTzzxmkHDYNlUZekyaesYGw8ZKDiVqRzu652aQ8ZZI9/o917ZEdQks5WfC5y
 6mz+7nPA6AhMOKp2itJ5Nc0Co7pJBfYg59cLXNQaj9vqbk7PH6/FGUTFKvnOA0Y9
 6HuCODAWzCasmVk3h9K+DK60Hm0jamgoGBcVDMHGyCp+qSK0JYc=
 =WsMV
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmm6ox0ACgkQmmx57+YA
 GNkTtQ//XY2A8qrCnC3Eo4YZN/X39bLcZpt8QyRPXpnle8B+fg8mYtIu58u+ACms
 xfqMW36+RioW30KrpfZahWEikgtZPIz8o0PxgtvaZSqCXb+puDz0TdWdEItTENR0
 bmG5JKE/Y2Mtn4gK81jSxu7wQTtR5ob5r1avKpn7W5cYYxy7F7cYfEzJj4jxccXu
 23tgxINITMAi+35iiLQFDAuf7687fJmptfC0GlyiHWH/gVJSh1LFlW8YrNbyQXc6
 liT06uwQyFBiib1z/zIpfB0QdqXJ/R/162p9bm2iupofUUS1ybOEvhB/KxVw/3H0
 YRJS0ToOuR0pyYPgHrNcbF5dHeyUFbaal0enZH153xS0av9mUVe5gM1nROYd8hQt
 f+iHZQ1MaTw4Th6TCj2g/RFlacH1jAdsRSz19Pf6yV9PgpFPs8Q/BcgiKzNGXkZG
 nyNviHfdya3xDM5yMOEXF8yxTAMlG+4KZwiJQG8bjx1HuioXTbLqndZT/Tt1O0Om
 62W+G4/Ifb7JPiPUW9atzWE7t2vv93gvsbQ6ztIBsPz35bybfIj3/XvV5X1lgcCi
 XiNcKyPFVDJiYUPK5oPZzWllLlgE+VQ1ChXz+Q4rgKYfVN77TOlnlFDQNpSg0wln
 Txi4wXFmEnn/qagPrIanUKPOJ07KR9kLHTldLRBY+CPZlQdyzwc=
 =XQHV
 -----END PGP SIGNATURE-----

Merge tag 'ffa-fix-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/fixes

Arm FF-A fix for v7.0

Fix removing the vm_id argument from ffa_rxtx_unmap(), as the FF-A
specification mandates this field be zero in all contexts except a
non-secure physical FF-A instance, where the ID is inherently 0.

* tag 'ffa-fix-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  firmware: arm_ffa: Remove vm_id argument in ffa_rxtx_unmap()

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-03-18 14:05:31 +01:00
Eliot Courtney
a19457958c gpu: nova-core: gsp: add mutex locking to Cmdq
Wrap `Cmdq`'s mutable state in a new struct `CmdqInner` and wrap that in
a Mutex. This lets `Cmdq` methods take &self instead of &mut self, which
lets required commands be sent e.g. while unloading the driver.

The mutex is held over both send and receive in `send_command` to make
sure that it doesn't get the reply of some other command that could have
been sent just beforehand.

Reviewed-by: Zhi Wang <zhiw@nvidia.com>
Tested-by: Zhi Wang <zhiw@nvidia.com>
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260318-cmdq-locking-v5-5-18b37e3f9069@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
2026-03-18 21:53:14 +09:00
Eliot Courtney
9b786c7f63 gpu: nova-core: gsp: make Cmdq a pinned type
Make `Cmdq` a pinned type. This is needed to use Mutex, which is needed
to add locking to `Cmdq`.

Reviewed-by: Zhi Wang <zhiw@nvidia.com>
Tested-by: Zhi Wang <zhiw@nvidia.com>
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260318-cmdq-locking-v5-4-18b37e3f9069@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
2026-03-18 21:53:14 +09:00
Eliot Courtney
c3bd240f97 gpu: nova-core: gsp: add reply/no-reply info to CommandToGsp
Add type infrastructure to know what reply is expected from each
`CommandToGsp`. Uses a marker type `NoReply` which does not implement
`MessageFromGsp` to mark commands which don't expect a response.

Update `send_command` to wait for a reply and add `send_command_no_wait`
which sends a command that has no reply, without blocking.

This prepares for adding locking to the queue.

Tested-by: Zhi Wang <zhiw@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260318-cmdq-locking-v5-3-18b37e3f9069@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
2026-03-18 21:53:14 +09:00
Eliot Courtney
67d9ef2bdd gpu: nova-core: gsp: add RECEIVE_TIMEOUT constant for command queue
Remove magic numbers and add a default timeout for callers to use.

Tested-by: Zhi Wang <zhiw@nvidia.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260318-cmdq-locking-v5-2-18b37e3f9069@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
2026-03-18 21:53:14 +09:00
Eliot Courtney
0a5dbeadf1 gpu: nova-core: gsp: fix stale doc comments on command queue methods
Fix some inaccuracies / old doc comments.

Reviewed-by: Zhi Wang <zhiw@nvidia.com>
Tested-by: Zhi Wang <zhiw@nvidia.com>
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
Link: https://patch.msgid.link/20260318-cmdq-locking-v5-1-18b37e3f9069@nvidia.com
Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
2026-03-18 21:53:14 +09:00
Pankaj Patil
87a1698cb8 firmware: qcom: scm: Allow QSEECOM on Glymur CRD
Add glymur-crd to QSEECOM allowlist for enabling access to efivars and
uefi bootloader

Signed-off-by: Pankaj Patil <pankaj.patil@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260225-qseecom_glymur-v1-1-0cafc709e2ef@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:35:38 -05:00
Arnd Bergmann
b3315ba042 TEE shared memory update for 7.0
Remove refcounting of kernel pages in register_shm_helper() to support
 slab allocations.
 -----BEGIN PGP SIGNATURE-----
 
 iQJOBAABCgA4FiEE0qerISgy2SKkqO79Wr/6JGat8H4FAmm3r1gaHGplbnMud2lr
 bGFuZGVyQGxpbmFyby5vcmcACgkQWr/6JGat8H7Lmw//V7ZOJWmGSQoBbPgcY9eE
 gjuoZ7VBPvSNvlh0N07h2x1uXw8dXjzhKW3AUu8WGBRZ2Q7eqbxEJEDMnw5uG7pz
 kPNN5Y+kjOCC13nd3bSjyMLKyPxNsW79C5uRZsVr3t9bituGPnGuurPy+P8HUWER
 ++Q515cggF+ovFy1Bi5Tc0nXNHEop9EArceZmeKeX98CsLH08O2BYXYfJVOIy73T
 GIZVR3djvTuX8i+RXnsNoU2q1Fty2lRtrALrNiVwY//nW4RtlAALAL7lXnDdubq7
 Is5M2AnJ96DEwCkgkJZZusxkwzquVcoAgiwqY7D809ifJfr2yK+jkLG69ZW4DoHh
 3ViXhv9XKTUAZy9jZTc1ugfDGX83C5/MM1sguBeyWrqRo9XGA7KGj/xuOvscMdac
 b0dnG8E97HLuPSvrR4ZBCGN5s/RLUVGDXmeytyuTSaN8tGHWC/SoKKMB3ln2oslf
 Zh4cedgWLsjr45Daxzo1wTRLczORuh8RqHeE38Ptt8PQgB12AzgagDXCcSvVTb4h
 dIgzXJ/RELnEhaZxV0lUONEF7SPTLC8NFUoZ9J2uWqScIUYXR0nBT04kv/8SeHld
 uqiOo/6QQ4mZKMT6XZWf3qlyiM+nzQr5n7Amr1H61gNnzNgcgZNu2yamXGzJA/QM
 nuv7YuLExOzJlbVC0aE/5Yo=
 =usSf
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmm6mpQACgkQmmx57+YA
 GNn5vhAApWm2ZsR5znG7CtF8Zc14dkVPzgxYlRJT0dcoEwgcjpIPVhST8cfgcTgV
 DJWdRJJ9NiKGTVaZ6KYsFebS1G2x/KW9AyVsPqOcDDy2+pNs8SZ5wS0ZhTzVY843
 gMvNUvwPbAO8SIrSl9vVBtmMtN9/hOt6bWdbMemQaWSW7B9JFvc5P3Zo5c3h0MrU
 wlE9VqcYSLrFCjbM5p2y9d+2OlWzmUo37BCXS+18u5l5+lXB8eFdyI1tuGJALDSB
 xypI5OU2unXLBXW8Enhad/igAyYC1Pz92HPLGbBtZTRW+8visdGhDkxnkp7ihSza
 pwqhdL9TyD6oNmpB56AhWPoyHd4+Ns/mSxxZbqLywwvLovlN33Xou82+SoIq2c6/
 zlXbzRXm7LD3kiYey8UZAfKAuG6t6FTXYU7QFW6MOyBtSJyFUQa1ivUXA5rKoN5p
 8hqvotgcNrPREKxiGRQeQp1EJIdh/aRSlwF4UZsy3Blq5ax1+Xyvris2jAOSN1Rv
 +14eNrQeoz85aXucTlZxKNajPfiqcTCd77sLAWz9AhoZoaIEXpzUt2/wIley+aC+
 f5nO180u+FS2XQLdvE7EOHhf3UNomL1OOvWihLJn62CtoPfqyqSpAxdryzW1tN5j
 AHPS9NtEKqbXonnF4H2TKCG4SANNZlZ3IATxcOuC2io4TKu78EI=
 =rbJV
 -----END PGP SIGNATURE-----

Merge tag 'tee-fix-for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee into arm/fixes

TEE shared memory update for 7.0

Remove refcounting of kernel pages in register_shm_helper() to support
slab allocations.

* tag 'tee-fix-for-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/jenswi/linux-tee:
  tee: shm: Remove refcounting of kernel pages

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-03-18 13:29:06 +01:00
Krzysztof Kozlowski
d98b978446 firmware: qcom: scom: Simplify mutex with guard
Simplify error path unlocking mutex with the guard.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260216091525.107935-6-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:20:21 -05:00
Krzysztof Kozlowski
4bfb0ec11e firmware: qcom: uefisecapp: Annotate acquiring locks for context tracking
qcuefi_acquire() and qcuefi_release() end with mutex locked or unlocked
respectively, so annotate them so the lock usage will be tracked by
context tracking tools.

Note that mutex is tracked since commit 370f0a345a ("locking/mutex:
Support Clang's context analysis").

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260216091525.107935-5-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:20:21 -05:00
Krzysztof Kozlowski
055d79affa firmware: qcom: uefisecapp: Simplify mutex with guard
Simplify error path unlocking mutex with the guard.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260216091525.107935-4-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:20:21 -05:00
Ming Qian
e8d97c270c media: verisilicon: Fix kernel panic due to __initconst misuse
Fix a kernel panic when probing the driver as a module:

  Unable to handle kernel paging request at virtual address
  ffffd9c18eb05000
  of_find_matching_node_and_match+0x5c/0x1a0
  hantro_probe+0x2f4/0x7d0 [hantro_vpu]

The imx8mq_vpu_shared_resources array is referenced by variant
structures through their shared_devices field. When built as a
module, __initconst causes this data to be freed after module
init, but it's later accessed during probe, causing a page fault.

The imx8mq_vpu_shared_resources is referenced from non-init code,
so keeping __initconst or __initconst_or_module here is wrong.

Drop the __initconst annotation and let it live in the normal .rodata
section.

A bug of __initconst called from regular non-init probe code
leading to bugs during probe deferrals or during unbind-bind cycles.

Reported-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Closes: https://lore.kernel.org/all/68ef934f-baa0-4bf6-93d8-834bbc441e66@kernel.org/
Reported-by: Franz Schnyder <franz.schnyder@toradex.com>
Closes: https://lore.kernel.org/all/n3qmcb62tepxltoskpf7ws6yiirc2so62ia23b42rj3wlmpl67@rvkbuirx7kkp/
Fixes: e0203ddf9a ("media: verisilicon: Avoid G2 bus error while decoding H.264 and HEVC")
Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Suggested-by: Marco Felsch <m.felsch@pengutronix.de>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Signed-off-by: Ming Qian <ming.qian@oss.nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Cc: stable@kernel.org
Signed-off-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
2026-03-18 13:17:25 +01:00
Manivannan Sadhasivam
408b79c097 arm64: dts: qcom: x1e80100: Add '#cooling-cells' for CPU nodes
Enable passive cooling for CPUs in the X1E80100 SoC by adding the
'#cooling-cells' property. This will allow the OS to mitigate the CPU
power dissipation with the help of SCMI DVFS.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Tested-by: Gaurav Kohli <gaurav.kohli@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260210070321.17033-1-manivannan.sadhasivam@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:16:51 -05:00
Krzysztof Kozlowski
90b7cc18e9 arm64: dts: qcom: x1-crd: add USB DisplayPort audio
Add support for playing audio over USB DisplayPort (the two left USB-C
ports on the CRD device).

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260209093237.33287-2-krzysztof.kozlowski@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:14:54 -05:00
Roger Shimizu
1cde54c54b arm64: dts: qcom: qcs6490: Add Thundercomm AI Mini PC G1 IoT
Thundercomm AI MiniPC G1 IoT is single board computer with
AI capability based on Qualcomm QCS6490 platform.

This device tree is confirmed to work as below:
- GPU
- HDMI output port
- PCIe M.2 port (for external Wi-Fi or 5G connectivity)
- UART / serial console port
- UFS
- USB Type-C port, with Display Port

Signed-off-by: Roger Shimizu <rosh@debian.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260207-next-20260130_rosh-v2-3-548bbe0c7742@debian.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:14:18 -05:00
Roger Shimizu
5230355252 arm64: dts: qcom: kodiak: Add missing usb-role-switch property
Add missing usb-role-switch property to usb_1 node.

Signed-off-by: Roger Shimizu <rosh@debian.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260207-next-20260130_rosh-v2-2-548bbe0c7742@debian.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:13:43 -05:00
Roger Shimizu
bc7cc1c4a3 dt-bindings: arm: qcom: Add Thundercomm AI Mini PC G1 IoT
Document Thundercomm AI Mini PC G1 IoT.

Signed-off-by: Roger Shimizu <rosh@debian.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260207-next-20260130_rosh-v2-1-548bbe0c7742@debian.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:13:43 -05:00
Aaron Kling
453f8a1523 arm64: dts: qcom: sm8550: Add ACD levels for GPU
Update GPU node to include acd level values.

Signed-off-by: Aaron Kling <webgeek1234@gmail.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/20260207-sm8550-acd-v1-1-53d084c58c9a@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:13:15 -05:00
Xilin Wu
ce26eb2967 arm64: dts: qcom: pmk8550: Add PWM controller
Add the PWM function to the pmk8550 dtsi, which is usually used
to control PWM backlight on platforms using this PMIC.

Signed-off-by: Xilin Wu <wuxilin123@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260207-pmk8550-pwm-v1-1-f2b26ab98d8b@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:13:08 -05:00
Bartosz Golaszewski
7aedf0ebbf arm64: dts: qcom: remove msm8996-v3.0.dtsi
This file is not used anywhere. Remove it.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Closes: https://lore.kernel.org/all/20251212203226.458694-3-robh@kernel.org/
Link: https://lore.kernel.org/r/20260206134506.72679-1-bartosz.golaszewski@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:12:46 -05:00
Varadarajan Narayanan
f69b0d8d51 arm64: dts: qcom: ipq9574: Enable eMMC variant
RDP433/RDP418 can have NAND or eMMC based on a board level rework. Since
the same GPIOS are used for both the interfaces, only one of them can be
used. Add a new DTS file to enable eMMC.

Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260205085936.3220108-5-varadarajan.narayanan@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:12:20 -05:00
Varadarajan Narayanan
26c980a7d3 dt-bindings: arm: qcom: Add IPQ9574 AL02-c2 and AL02-c7 eMMC variant
Document the IPQ9574 AL02-c2 and AL02-c7 eMMC variant.

Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260205085936.3220108-4-varadarajan.narayanan@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:12:20 -05:00
Varadarajan Narayanan
fc1fd9d52a arm64: dts: qcom: ipq9574-rdp433: Reorganize DTS to introduce eMMC support
The RDP433 has NAND and eMMC variants. Presently, only NAND variant is
supported. To enable support for eMMC variant, move the common nodes from
ipq9574-rdp433.dts to ipq9574-rdp433-common.dtsi. ipq9574-rdp433-common.dtsi
will be included in rdp433 NAND and eMMC DT files.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260205085936.3220108-3-varadarajan.narayanan@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:12:20 -05:00
Varadarajan Narayanan
53f5d2d61a arm64: dts: qcom: ipq9574: Add details for eMMC
RDP433 and RDP418 has NAND and eMMC variants. Presently, only NAND
variant is supported. To enable support for eMMC variant, add the
relevant GPIO and regulator information.

Do not enable NAND or eMMC by default in ipq9574-rdp-common.dtsi. Enable
it in board specific DTS as applicable.

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260205085936.3220108-2-varadarajan.narayanan@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:12:20 -05:00
Odelu Kukatla
7aec47be7c arm64: dts: qcom: qcs8300: Add clocks for QoS configuration
Add clocks which need to be enabled for configuring QoS on
qcs8300 SoC.

Signed-off-by: Odelu Kukatla <odelu.kukatla@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260127090116.1438780-4-odelu.kukatla@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:10:48 -05:00
Barnabás Czémán
7131f6d909 arm64: dts: qcom: msm8953-xiaomi-daisy: fix backlight
The backlight on this device is connected via 3 strings. Currently,
the DT claims only two are present, which results in visible stripes
on the display (since every third backlight string remains unconfigured).

Fix the number of strings to avoid that.

Fixes: 38d779c263 ("arm64: dts: qcom: msm8953: Add device tree for Xiaomi Mi A2 Lite")
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260116-pmi8950-wled-v3-7-e6c93de84079@mainlining.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:07:26 -05:00
Barnabás Czémán
9bc4b18a42 arm64: dts: qcom: msm8937-xiaomi-land: correct wled ovp value
PMI8950 doesn't actually support setting an OVP threshold value of
29.6 V. The closest allowed value is 29.5 V. Set that instead.

Fixes: 2144f6d57d ("arm64: dts: qcom: Add Xiaomi Redmi 3S")
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260116-pmi8950-wled-v3-6-e6c93de84079@mainlining.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:07:26 -05:00
Barnabás Czémán
9e87f0eaad arm64: dts: qcom: msm8953-xiaomi-vince: correct wled ovp value
PMI8950 doesn't actually support setting an OVP threshold value of
29.6 V. The closest allowed value is 29.5 V. Set that instead.

Fixes: aa17e707e0 ("arm64: dts: qcom: msm8953: Add device tree for Xiaomi Redmi 5 Plus")
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Link: https://lore.kernel.org/r/20260116-pmi8950-wled-v3-5-e6c93de84079@mainlining.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:07:25 -05:00
Xilin Wu
00569c6342 arm64: dts: qcom: sm8550: Update EAS properties
The original values provided by Qualcomm appear to be quite
inaccurate. Specifically, some heavy gaming tasks could be
improperly assigned to the A510 cores by the scheduler, resulting
in a CPU bottleneck. This update to the EAS properties aims to
enhance the user experience across various scenarios.

The power numbers were obtained using a Type-C power meter, which
was directly connected to the battery connector on the AYN Odin 2
motherboard, acting as a fake battery.

It should be noted that the A715 cores seem less efficient than the
A710 cores. Therefore, an average value has been assigned to them,
considering that the A715 and A710 cores share a single cpufreq
domain.

Cortex-A510 cores:
441 kHz, 564 mV, 43 mW, 350 Cx
556 kHz, 580 mV, 59 mW, 346 Cx
672 kHz, 592 mV, 71 mW, 312 Cx
787 kHz, 604 mV, 83 mW, 290 Cx
902 kHz, 608 mV, 96 mW, 288 Cx
1017 kHz, 624 mV, 107 mW, 264 Cx
1113 kHz, 636 mV, 117 mW, 252 Cx
1228 kHz, 652 mV, 130 mW, 240 Cx
1344 kHz, 668 mV, 146 mW, 235 Cx
1459 kHz, 688 mV, 155 mW, 214 Cx
1555 kHz, 704 mV, 166 mW, 205 Cx
1670 kHz, 724 mV, 178 mW, 192 Cx
1785 kHz, 744 mV, 197 mW, 189 Cx
1900 kHz, 764 mV, 221 mW, 190 Cx
2016 kHz, 784 mV, 243 mW, 188 Cx
Your dynamic-power-coefficient for cpu 1: 251

Cortex-A715 cores:
614 kHz, 572 mV, 97 mW, 470 Cx
729 kHz, 592 mV, 123 mW, 473 Cx
844 kHz, 608 mV, 152 mW, 486 Cx
940 kHz, 624 mV, 178 mW, 485 Cx
1056 kHz, 644 mV, 207 mW, 465 Cx
1171 kHz, 656 mV, 243 mW, 480 Cx
1286 kHz, 672 mV, 271 mW, 459 Cx
1401 kHz, 692 mV, 310 mW, 454 Cx
1536 kHz, 716 mV, 368 mW, 462 Cx
1651 kHz, 740 mV, 416 mW, 454 Cx
1785 kHz, 760 mV, 492 mW, 475 Cx
1920 kHz, 784 mV, 544 mW, 457 Cx
2054 kHz, 804 mV, 613 mW, 458 Cx
2188 kHz, 828 mV, 702 mW, 465 Cx
2323 kHz, 852 mV, 782 mW, 461 Cx
2457 kHz, 876 mV, 895 mW, 473 Cx
2592 kHz, 896 mV, 1020 mW, 490 Cx
2707 kHz, 920 mV, 1140 mW, 498 Cx
2803 kHz, 940 mV, 1215 mW, 490 Cx
Your dynamic-power-coefficient for cpu 3: 472

Cortex-A710 cores:
614 kHz, 572 mV, 91 mW, 388 Cx
729 kHz, 592 mV, 116 mW, 424 Cx
844 kHz, 608 mV, 143 mW, 443 Cx
940 kHz, 624 mV, 165 mW, 434 Cx
1056 kHz, 644 mV, 195 mW, 430 Cx
1171 kHz, 656 mV, 218 mW, 414 Cx
1286 kHz, 672 mV, 250 mW, 415 Cx
1401 kHz, 692 mV, 286 mW, 412 Cx
1536 kHz, 716 mV, 331 mW, 407 Cx
1651 kHz, 740 mV, 374 mW, 401 Cx
1785 kHz, 760 mV, 439 mW, 417 Cx
1920 kHz, 784 mV, 495 mW, 411 Cx
2054 kHz, 804 mV, 557 mW, 412 Cx
2188 kHz, 828 mV, 632 mW, 415 Cx
2323 kHz, 852 mV, 721 mW, 422 Cx
2457 kHz, 876 mV, 813 mW, 427 Cx
2592 kHz, 896 mV, 912 mW, 435 Cx
2707 kHz, 920 mV, 1019 mW, 442 Cx
2803 kHz, 940 mV, 1087 mW, 436 Cx
Your dynamic-power-coefficient for cpu 5: 421

Cortex-X3 core:
729 kHz, 568 mV, 252 mW, 1110 Cx
864 kHz, 580 mV, 312 mW, 1097 Cx
998 kHz, 592 mV, 379 mW, 1109 Cx
1132 kHz, 608 mV, 453 mW, 1099 Cx
1248 kHz, 624 mV, 517 mW, 1067 Cx
1363 kHz, 636 mV, 587 mW, 1067 Cx
1478 kHz, 648 mV, 657 mW, 1058 Cx
1593 kHz, 664 mV, 739 mW, 1049 Cx
1708 kHz, 680 mV, 813 mW, 1020 Cx
1843 kHz, 704 mV, 940 mW, 1021 Cx
1977 kHz, 724 mV, 1054 mW, 1007 Cx
2092 kHz, 740 mV, 1201 mW, 1045 Cx
2227 kHz, 768 mV, 1358 mW, 1029 Cx
2342 kHz, 788 mV, 1486 mW, 1016 Cx
2476 kHz, 812 mV, 1711 mW, 1046 Cx
2592 kHz, 836 mV, 1846 mW, 1014 Cx
2726 kHz, 856 mV, 2046 mW, 1020 Cx
2841 kHz, 880 mV, 2266 mW, 1027 Cx
2956 kHz, 908 mV, 2616 mW, 1074 Cx
3187 kHz, 956 mV, 3326 mW, 1147 Cx
Your dynamic-power-coefficient for cpu 7: 1057

7-zip benchmark single-core MIPS:
2128   4416   4632   6686

Signed-off-by: Xilin Wu <wuxilin123@gmail.com>
Signed-off-by: Aaron Kling <webgeek1234@gmail.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Link: https://lore.kernel.org/r/20260128-sm8550-eas-v1-1-fb80615bed5c@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:06:44 -05:00
Xin Liu
47c88db49f arm64: dts: qcom: hamoa: Add remoteproc IOMMUS in EL2 device trees
All the existing variants Hamoa 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 remoteproc IOMMUS to the EL2 device trees to generate the
corresponding -el2.dtb files.

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

Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com>
Signed-off-by: Xin Liu <xin.liu@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260203063244.1498699-1-xin.liu@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
2026-03-18 07:06:15 -05:00