[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3f346bdc-81a4-4620-9a31-25c41d591c58@oss.qualcomm.com>
Date: Tue, 13 May 2025 15:09:52 +0200
From: Konrad Dybcio <konrad.dybcio@....qualcomm.com>
To: Ekansh Gupta <ekansh.gupta@....qualcomm.com>,
Konrad Dybcio <konrad.dybcio@....qualcomm.com>,
Alexey Klimov <alexey.klimov@...aro.org>, andersson@...nel.org,
konradybcio@...nel.org, linux-arm-msm@...r.kernel.org
Cc: robh@...nel.org, krzk+dt@...nel.org, conor+dt@...nel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
srini@...nel.org, quic_ekangupt@...cinc.com,
krzysztof.kozlowski@...aro.org,
"Bharath Kumar (QUIC)" <quic_bkumar@...cinc.com>,
"Chenna Kesava Raju (QUIC)" <quic_chennak@...cinc.com>
Subject: Re: [PATCH] arm64: dts: qcom: sm8750: Add adsp fastrpc support
On 5/9/25 5:42 AM, Ekansh Gupta wrote:
>
>
> On 5/9/2025 4:27 AM, Konrad Dybcio wrote:
>> On 5/9/25 12:20 AM, Alexey Klimov wrote:
>>> On Fri May 2, 2025 at 10:38 AM BST, Konrad Dybcio wrote:
>>>> On 5/2/25 3:15 AM, Alexey Klimov wrote:
>>>>> While at this, also add required memory region for fastrpc.
>>>>>
>>>>> Tested on sm8750-mtp device with adsprpdcd.
>>>>>
>>>>> Cc: Ekansh Gupta <quic_ekangupt@...cinc.com>
>>>>> Cc: Srinivas Kandagatla <srini@...nel.org>
>>>>> Cc: Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>
>>>>> Signed-off-by: Alexey Klimov <alexey.klimov@...aro.org>
>>>>> ---
>>>>> arch/arm64/boot/dts/qcom/sm8750.dtsi | 70 ++++++++++++++++++++++++++++
>>>>> 1 file changed, 70 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8750.dtsi b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>>> index 149d2ed17641..48ee66125a89 100644
>>>>> --- a/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>>> +++ b/arch/arm64/boot/dts/qcom/sm8750.dtsi
>>>>> @@ -7,6 +7,7 @@
>>>>> #include <dt-bindings/clock/qcom,sm8750-gcc.h>
>>>>> #include <dt-bindings/clock/qcom,sm8750-tcsr.h>
>>>>> #include <dt-bindings/dma/qcom-gpi.h>
>>>>> +#include <dt-bindings/firmware/qcom,scm.h>
>>>>> #include <dt-bindings/interconnect/qcom,icc.h>
>>>>> #include <dt-bindings/interconnect/qcom,sm8750-rpmh.h>
>>>>> #include <dt-bindings/interrupt-controller/arm-gic.h>
>>>>> @@ -523,6 +524,14 @@ llcc_lpi_mem: llcc-lpi@...00000 {
>>>>> reg = <0x0 0xff800000 0x0 0x800000>;
>>>>> no-map;
>>>>> };
>>>>> +
>>>>> + adsp_rpc_remote_heap_mem: adsp-rpc-remote-heap {
>>>>> + compatible = "shared-dma-pool";
>>>>> + alloc-ranges = <0x0 0x00000000 0x0 0xffffffff>;
>>>>> + alignment = <0x0 0x400000>;
>>>>> + size = <0x0 0xc00000>;
>>>>> + reusable;
>>>>> + };
>>>>> };
>>>>>
>>>>> smp2p-adsp {
>>>>> @@ -2237,6 +2246,67 @@ q6prmcc: clock-controller {
>>>>> };
>>>>> };
>>>>> };
>>>>> +
>>>>> + fastrpc {
>>>>> + compatible = "qcom,fastrpc";
>>>>> + qcom,glink-channels = "fastrpcglink-apps-dsp";
>>>>> + label = "adsp";
>>>>> + memory-region = <&adsp_rpc_remote_heap_mem>;
>>>> IIUC the driver only considers this on the sensor DSP
>>> Memory region is required for audio protection domain + adsprpdcd as far as I know.
>> next-20250508
>>
>> rmem_node = of_parse_phandle(rdev->of_node, "memory-region", 0);
>> if (domain_id == SDSP_DOMAIN_ID && rmem_node) {
>> // ...
>> }
>>
>> maybe some driver changes are still pending?
>
> Would like to add some more details here:
>
> Memory region is required for audio PD for dynamic loading and remote heap memory
> requirements. Some initial memory(~2MB) is allocated initially when audio daemon
> is getting attached[1] and this memory is added to audio PD memory pool.
>
> Additionally, if there is some additional memory requirement from audio PD, the
> PD can request for more memory using remote heap request[2]
>
> The support for SDSP was added sometime back[3] to support SDSP usecases on some old
> platform as there were no dedicated context banks for SDSP there. On recent platforms,
> context banks are available wherever SDSP is supported.
>
> [1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1273
> [2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/drivers/misc/fastrpc.c#n1884
> [3] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/misc/fastrpc.c?id=c3c0363bc72d4d0907a6d446d7424b3f022ce82a
Ok, this was mildly confusing given there's specific "normal" region
handling, but the DMA allocator takes care of this one
Konrad
Powered by blists - more mailing lists