* [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
2026-07-16 15:18 [PATCH v1 0/2] arm64: dts: qcom: enable audio ML offload Pratyush Meduri
@ 2026-07-16 15:18 ` Pratyush Meduri
2026-07-16 15:45 ` sashiko-bot
0 siblings, 1 reply; 3+ messages in thread
From: Pratyush Meduri @ 2026-07-16 15:18 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
The audio ML (machine-learning) offload use case requires a contiguous,
physically addressable buffer shared with the audio DSP/SPF, and issues
DMA transactions through additional SMMU stream IDs that are not
covered by the existing ADSP mapping.
Add a dedicated reusable shared-dma-pool CMA region (16 MiB, 4 MiB
aligned) and wire it to the q6apm DAIs node via memory-region. A
dedicated pool guarantees the alignment and contiguity the DSP expects
and isolates these allocations from the default CMA region.
Under the EL2 (Gunyah/hypervisor) configuration the SMMU is fully
enforcing, so the ML transactions are otherwise blocked and faulted:
arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x2060
arm-smmu 15000000.iommu: Blocked unknown Stream ID 0x2062
Add the ML-related stream IDs (0x3060 mask 0x9, 0x3062 mask 0x1) to the
remoteproc_adsp iommus property in the EL2 overlay so these buffers are
translated by the SMMU instead of being rejected.
Signed-off-by: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/monaco-el2.dtso | 4 +++-
arch/arm64/boot/dts/qcom/monaco.dtsi | 9 +++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/monaco-el2.dtso b/arch/arm64/boot/dts/qcom/monaco-el2.dtso
index a7e3270f8609..97bb8287cec3 100644
--- a/arch/arm64/boot/dts/qcom/monaco-el2.dtso
+++ b/arch/arm64/boot/dts/qcom/monaco-el2.dtso
@@ -17,7 +17,9 @@ &iris {
};
&remoteproc_adsp {
- iommus = <&apps_smmu 0x2000 0x0>;
+ iommus = <&apps_smmu 0x2000 0x0>,
+ <&apps_smmu 0x2060 0x9>,
+ <&apps_smmu 0x2062 0x1>;
};
&remoteproc_cdsp {
diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
index 64fc0d592282..d971c0ea1b30 100644
--- a/arch/arm64/boot/dts/qcom/monaco.dtsi
+++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
@@ -729,6 +729,14 @@ reserved-memory {
#size-cells = <2>;
ranges;
+ audio_cma_mem: qcom,audio-ml {
+ compatible = "shared-dma-pool";
+ alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
+ reusable;
+ alignment = <0x0 0x400000>;
+ size = <0x0 0x1000000>;
+ };
+
aop_image_mem: aop-image-region@90800000 {
reg = <0x0 0x90800000 0x0 0x60000>;
no-map;
@@ -2844,6 +2852,7 @@ q6apmbedai: bedais {
q6apmdai: dais {
compatible = "qcom,q6apm-dais";
iommus = <&apps_smmu 0x2001 0x0>;
+ memory-region = <&audio_cma_mem>;
};
};
--
2.34.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
2026-07-16 15:18 ` [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings Pratyush Meduri
@ 2026-07-16 15:45 ` sashiko-bot
0 siblings, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-07-16 15:45 UTC (permalink / raw)
To: Pratyush Meduri; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] The newly added `memory-region` for `audio_cma_mem` will be silently ignored because the `qcom,q6apm-dais` driver does not invoke `of_reserved_mem_device_init()`.
- [Medium] The commit message incorrectly references stream IDs `0x3060` and `0x3062`, while the code and the included error logs implement `0x2060` and `0x2062`.
- [Low] The reserved-memory child node name `qcom,audio-ml` incorrectly uses a vendor prefix and comma, violating standard node naming conventions and schema bindings.
--
--- Patch [2]: [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings ---
commit d4559ccd650e9d04eb0b0b1f98b8e965dd7cd910
Author: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>
arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
This patch adds a dedicated 16 MiB shared-dma-pool CMA region for audio ML
offload and connects it to the q6apm DAIs node. It also updates the EL2
overlay to include the ML-related stream IDs so the SMMU translates rather
than blocks these transactions.
> Add the ML-related stream IDs (0x3060 mask 0x9, 0x3062 mask 0x1) to the
> remoteproc_adsp iommus property in the EL2 overlay so these buffers are
> translated by the SMMU instead of being rejected.
[Severity: Medium]
This isn't a bug in the code, but there appears to be a typo in the commit
message. The text references stream IDs 0x3060 and 0x3062, while the code
and the included dmesg logs correctly use 0x2060 and 0x2062. Should the
commit message be updated to match the implementation?
> diff --git a/arch/arm64/boot/dts/qcom/monaco-el2.dtso b/arch/arm64/boot/dts/qcom/monaco-el2.dtso
> index a7e3270f86090..97bb8287cec33 100644
> --- a/arch/arm64/boot/dts/qcom/monaco-el2.dtso
> +++ b/arch/arm64/boot/dts/qcom/monaco-el2.dtso
[ ... ]
> diff --git a/arch/arm64/boot/dts/qcom/monaco.dtsi b/arch/arm64/boot/dts/qcom/monaco.dtsi
> index 64fc0d592282c..d971c0ea1b302 100644
> --- a/arch/arm64/boot/dts/qcom/monaco.dtsi
> +++ b/arch/arm64/boot/dts/qcom/monaco.dtsi
> @@ -729,6 +729,14 @@ reserved-memory {
> #size-cells = <2>;
> ranges;
>
> + audio_cma_mem: qcom,audio-ml {
[Severity: Low]
Does this node name violate standard device tree naming conventions? Using a
vendor prefix and a comma in the node name (qcom,audio-ml) typically causes
dt_binding_check validation failures.
Standard reserved-memory schemas strictly expect child node names to match
generic patterns like memory, pool, shared-dma-pool, or cma. Should this be
named something generic like audio-ml-cma?
> + compatible = "shared-dma-pool";
> + alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
> + reusable;
> + alignment = <0x0 0x400000>;
> + size = <0x0 0x1000000>;
> + };
> +
[ ... ]
> @@ -2844,6 +2852,7 @@ q6apmbedai: bedais {
> q6apmdai: dais {
> compatible = "qcom,q6apm-dais";
> iommus = <&apps_smmu 0x2001 0x0>;
> + memory-region = <&audio_cma_mem>;
[Severity: High]
Will this memory-region actually be utilized by the driver?
Looking at the driver probe routine in sound/soc/qcom/qdsp6/q6apm-dai.c,
q6apm_dai_probe() does not appear to call of_reserved_mem_device_init().
Without that initialization, the driver will silently fall back to allocating
from the default CMA pool instead of using this dedicated 16 MiB region.
This seems like it would waste the reserved 16 MiB of RAM and defeat the
patch's goal of isolating allocations to guarantee contiguity, potentially
breaking the ML offload feature when the default CMA pool fragments.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260716151854.3041914-1-pratyush.meduri@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
@ 2026-07-17 23:35 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2026-07-17 23:35 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp
::::::
:::::: Manual check reason: "dtcheck: binding changes may go via different trees"
::::::
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20260716151854.3041914-3-pratyush.meduri@oss.qualcomm.com>
References: <20260716151854.3041914-3-pratyush.meduri@oss.qualcomm.com>
TO: Pratyush Meduri <pratyush.meduri@oss.qualcomm.com>
TO: Bjorn Andersson <andersson@kernel.org>
TO: Konrad Dybcio <konradybcio@kernel.org>
TO: Rob Herring <robh@kernel.org>
TO: Krzysztof Kozlowski <krzk@kernel.org>
TO: Conor Dooley <conor+dt@kernel.org>
CC: linux-arm-msm@vger.kernel.org
CC: devicetree@vger.kernel.org
CC: linux-kernel@vger.kernel.org
Hi Pratyush,
kernel test robot noticed the following build warnings:
[auto build test WARNING on b8809969e1d7a591e0f49dd464a5d04b3cf02ab1]
url: https://github.com/intel-lab-lkp/linux/commits/Pratyush-Meduri/arm64-dts-qcom-lemans-enable-audio-ML-offload-memory-and-SMMU-mappings/20260717-052616
base: b8809969e1d7a591e0f49dd464a5d04b3cf02ab1
patch link: https://lore.kernel.org/r/20260716151854.3041914-3-pratyush.meduri%40oss.qualcomm.com
patch subject: [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings
:::::: branch date: 26 hours ago
:::::: commit date: 26 hours ago
config: arm64-randconfig-2054-20260717 (https://download.01.org/0day-ci/archive/20260718/202607180121.3ddV4ije-lkp@intel.com/config)
compiler: clang version 22.1.8 (https://github.com/llvm/llvm-project ca7933e47d3a3451d81e72ac174dcb5aa28b59d1)
rustc: rustc 1.96.0 (ac68faa20 2026-05-25)
dtschema: 2026.7.dev1+g2203c1720
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260718/202607180121.3ddV4ije-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/r/202607180121.3ddV4ije-lkp@intel.com/
dtcheck warnings: (new ones prefixed by >>)
arch/arm64/boot/dts/qcom/lemans.dtsi:5497.28-5560.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae94000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" or "ranges" property
arch/arm64/boot/dts/qcom/lemans.dtsi:5581.28-5635.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae96000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" or "ranges" property
>> arch/arm64/boot/dts/qcom/lemans-evk.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
arch/arm64/boot/dts/qcom/lemans.dtsi:5497.28-5560.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae94000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" or "ranges" property
arch/arm64/boot/dts/qcom/lemans.dtsi:5581.28-5635.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae96000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" or "ranges" property
>> arch/arm64/boot/dts/qcom/qcs9100-ride.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
arch/arm64/boot/dts/qcom/lemans.dtsi:5497.28-5560.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae94000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" or "ranges" property
arch/arm64/boot/dts/qcom/lemans.dtsi:5581.28-5635.6: Warning (avoid_unnecessary_addr_size): /soc@0/display-subsystem@ae00000/dsi@ae96000: unnecessary #address-cells/#size-cells without "ranges", "dma-ranges" or child "reg" or "ranges" property
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
>> arch/arm64/boot/dts/qcom/lemans-evk-camera-csi1-imx577.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-camera-csi1-imx577.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-camera-csi1-imx577.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
>> arch/arm64/boot/dts/qcom/lemans-evk-camera.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-camera.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-camera.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
>> arch/arm64/boot/dts/qcom/lemans-evk-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): iommus: [[54, 12288, 0], [54, 12384, 9], [54, 12386, 1]] is too long
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): Unevaluated properties are not allowed ('glink-edge', 'interconnects', 'iommus' were unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-el2.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-el2.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-el2.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
>> arch/arm64/boot/dts/qcom/lemans-evk-ifp-mezzanine.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-ifp-mezzanine.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/lemans-evk-ifp-mezzanine.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
>> arch/arm64/boot/dts/qcom/qcs9100-ride-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): iommus: [[54, 12288, 0], [54, 12384, 9], [54, 12386, 1]] is too long
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): Unevaluated properties are not allowed ('glink-edge', 'interconnects', 'iommus' were unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-el2.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-el2.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-el2.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): iommus: [[54, 12288, 0], [54, 12384, 9], [54, 12386, 1]] is too long
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3-el2.dtb: remoteproc@30000000 (qcom,sa8775p-adsp-pas): Unevaluated properties are not allowed ('glink-edge', 'interconnects', 'iommus' were unexpected)
from schema $id: http://devicetree.org/schemas/remoteproc/qcom,sa8775p-pas.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3-el2.dtb: service@1 (qcom,q6apm): dais: 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3-el2.dtb: service@1 (qcom,q6apm): dais: Unevaluated properties are not allowed ('memory-region' was unexpected)
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm.yaml
>> arch/arm64/boot/dts/qcom/qcs9100-ride-r3-el2.dtb: dais (qcom,q6apm-dais): 'memory-region' does not match any of the regexes: '^pinctrl-[0-9]+$'
from schema $id: http://devicetree.org/schemas/sound/qcom,q6apm-dai.yaml
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-17 23:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-17 23:35 [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2026-07-16 15:18 [PATCH v1 0/2] arm64: dts: qcom: enable audio ML offload Pratyush Meduri
2026-07-16 15:18 ` [PATCH v1 2/2] arm64: dts: qcom: monaco: enable audio ML offload memory and SMMU mappings Pratyush Meduri
2026-07-16 15:45 ` sashiko-bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.