devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
To: Rob Herring <robh@kernel.org>
Cc: bjorn.andersson@linaro.org, broonie@kernel.org,
	plai@codeaurora.org, tiwai@suse.de, devicetree@vger.kernel.org,
	perex@perex.cz, alsa-devel@alsa-project.org, lgirdwood@gmail.com,
	bgoswami@codeaurora.org
Subject: Re: [PATCH v4 03/20] soc: dt-bindings: qcom: add gpr bindings
Date: Wed, 1 Sep 2021 15:28:09 +0100	[thread overview]
Message-ID: <b5844827-3c78-9a13-776e-ff41f49685db@linaro.org> (raw)
In-Reply-To: <YRby8EtUeXnqEd8m@robh.at.kernel.org>

Thanks Rob for the review,

On 13/08/2021 23:32, Rob Herring wrote:
> On Mon, Aug 09, 2021 at 12:23:22PM +0100, Srinivas Kandagatla wrote:
>> Qualcomm Generic Packet router aka GPR is the IPC mechanism found
>> in AudioReach next generation signal processing framework to perform
>> command and response messages between various processors.
>>
>> GPR has concepts of static and dynamic port, all static services like
>> APM (Audio Processing Manager), PRM (Proxy resource manager) have
>> fixed port numbers where as dynamic services like graphs have dynamic
>> port numbers which are allocated at runtime. All GPR packet messages
>> will have source and destination domain and port along with opcode
>> and payload.
>>
>> This support is added using existing APR driver to reuse most of
>> the code.
>>
>> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>> ---
>>   .../bindings/soc/qcom/qcom,apr.yaml           | 92 ++++++++++++++++++-
>>   include/dt-bindings/soc/qcom,gpr.h            | 18 ++++
>>   2 files changed, 105 insertions(+), 5 deletions(-)
>>   create mode 100644 include/dt-bindings/soc/qcom,gpr.h
>>
>> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
>> index 12650f7084f4..59d8b4dce8b5 100644
>> --- a/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
>> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,apr.yaml
>> @@ -4,14 +4,14 @@
>>   $id: "http://devicetree.org/schemas/soc/qcom/qcom,apr.yaml#"
>>   $schema: "http://devicetree.org/meta-schemas/core.yaml#"
>>   
>> -title: Qualcomm APR (Asynchronous Packet Router) binding
>> +title: Qualcomm APR/GPR (Asynchronous/Generic Packet Router) binding
>>   
>>   maintainers:
>>     - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>>   
>>   description: |
>> -  This binding describes the Qualcomm APR, APR is a IPC protocol for
>> -  communication between Application processor and QDSP. APR is mainly
>> +  This binding describes the Qualcomm APR/GPR, APR/GPR is a IPC protocol for
>> +  communication between Application processor and QDSP. APR/GPR is mainly
>>     used for audio/voice services on the QDSP.
>>   
>>   properties:
>> @@ -19,6 +19,7 @@ properties:
>>       enum:
>>         - qcom,apr
>>         - qcom,apr-v2
>> +      - qcom,gpr
>>   
>>     qcom,apr-domain:
>>       $ref: /schemas/types.yaml#/definitions/uint32
>> @@ -33,13 +34,22 @@ properties:
>>           6 = Modem2 Domain
>>           7 = Application Processor2 Domain
>>   
>> +  qcom,gpr-domain:
> 
> When the next flavor comes out, we'll have qcom,foo-domain?

Am happy to generalize this to qcom,domain and make the qcom,apr-domain 
deprecated, if that is the direction you suggest?

> 
>> +    $ref: /schemas/types.yaml#/definitions/uint32
>> +    enum: [1, 2, 3]
>> +    description:
>> +      Selects the processor domain for gpr
>> +        1 = Modem Domain
>> +        2 = Audio DSP Domain
>> +        3 = Application Processor Domain
>> +
>>     '#address-cells':
>>       const: 1
>>   
>>     '#size-cells':
>>       const: 0
>>   
>> -#APR Services
>> +#APR/GPR Services
>>   patternProperties:
>>     "^apr-service@[0-9a-e]$":
>>       type: object
>> @@ -86,9 +96,66 @@ patternProperties:
>>   
>>       additionalProperties: false
>>   
>> +  "^gpr-service@[0-9a-e]$":
> 
> And foo-service@...
> 
> Do you (the driver) care what the node name is?

not really, we can name it as service@

> 
>> +    type: object
>> +    description:
>> +      GPR node's client devices use subnodes for desired static port services.
>> +
>> +    properties:
>> +      compatible:
>> +        enum:
>> +          - qcom,q6apm
>> +          - qcom,q6prm
>> +
>> +      reg:
>> +        enum: [1, 2, 3, 4]
>> +        description:
>> +          GPR Service ID
>> +            1 = Audio Process Manager Service
>> +            2 = Proxy Resource Manager Service.
> 
> Looks like both reg and compatible encode what the service is.

yes, this is inline with what has been done with APR bindings.

> 
>> +            3 = AMDB Service.
>> +            4 = Voice processing manager.
>> +
>> +      qcom,protection-domain:
>> +        $ref: /schemas/types.yaml#/definitions/string-array
>> +        description: protection domain service name and path for apr service
>> +          has dependency on.
>> +        items:
>> +          - const: avs/audio
>> +          - const: msm/adsp/audio_pd
> 
> Why are we redefining the same property? You've combined the binding but
> are still sharing almost nothing...

I agree, Its possible to remove these redefinition, I will try to clean 
this up properly in next spin.

--srini
> 
>> +
>> +      '#address-cells':
>> +        const: 1
>> +
>> +      '#size-cells':
>> +        const: 0
>> +
>> +    additionalProperties: false
>> +
>>   required:
>>     - compatible
>> -  - qcom,apr-domain
>> +
>> +allOf:
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - qcom,apr-v2
>> +              - qcom,apr
>> +    then:
>> +      required:
>> +        - qcom,apr-domain
>> +
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - qcom,gpr
>> +    then:
>> +      required:
>> +        - qcom,gpr-domain
>>   
>>   additionalProperties: false
>>   
>> @@ -125,3 +192,18 @@ examples:
>>             qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
>>           };
>>       };
>> +
>> +  - |
>> +    #include <dt-bindings/soc/qcom,gpr.h>
>> +    gpr {
>> +        compatible = "qcom,gpr";
>> +        qcom,gpr-domain = <GPR_DOMAIN_ID_ADSP>;
>> +        #address-cells = <1>;
>> +        #size-cells = <0>;
>> +
>> +        gpr-service@1 {
>> +          compatible = "qcom,q6apm";
>> +          reg = <GPR_APM_MODULE_IID>;
>> +          qcom,protection-domain = "avs/audio", "msm/adsp/audio_pd";
>> +        };
>> +    };
>> diff --git a/include/dt-bindings/soc/qcom,gpr.h b/include/dt-bindings/soc/qcom,gpr.h
>> new file mode 100644
>> index 000000000000..1c68906e079c
>> --- /dev/null
>> +++ b/include/dt-bindings/soc/qcom,gpr.h
>> @@ -0,0 +1,18 @@
>> +/* SPDX-License-Identifier: GPL-2.0 */
>> +#ifndef __DT_BINDINGS_QCOM_GPR_H
>> +#define __DT_BINDINGS_QCOM_GPR_H
>> +
>> +/* DOMAINS */
>> +
>> +#define GPR_DOMAIN_ID_MODEM	1
>> +#define GPR_DOMAIN_ID_ADSP	2
>> +#define GPR_DOMAIN_ID_APPS	3
>> +
>> +/* Static Services */
>> +
>> +#define GPR_APM_MODULE_IID		1
>> +#define GPR_PRM_MODULE_IID		2
>> +#define GPR_AMDB_MODULE_IID		3
>> +#define GPR_VCPM_MODULE_IID		4
>> +
>> +#endif /* __DT_BINDINGS_QCOM_GPR_H */
>> -- 
>> 2.21.0
>>
>>

  reply	other threads:[~2021-09-01 14:28 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-09 11:23 [PATCH v4 00/20] ASoC: qcom: Add AudioReach support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 01/20] soc: dt-bindings: qcom: apr: convert to yaml Srinivas Kandagatla
2021-08-13 22:23   ` Rob Herring
2021-09-01 14:28     ` Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 02/20] soc: qcom: apr: make code more reuseable Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 03/20] soc: dt-bindings: qcom: add gpr bindings Srinivas Kandagatla
2021-08-13 22:32   ` Rob Herring
2021-09-01 14:28     ` Srinivas Kandagatla [this message]
2021-08-09 11:23 ` [PATCH v4 04/20] soc: qcom: apr: Add GPR support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 05/20] ASoC: dt-bindings: move LPASS dai related bindings out of q6afe Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 06/20] ASoC: dt-bindings: move LPASS clocks " Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 07/20] ASoC: dt-bindings: rename q6afe.h to q6dsp-lpass-ports.h Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 08/20] ASoC: qdsp6: q6afe-dai: move lpass audio ports to common file Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 09/20] ASoC: qdsp6: q6afe-clocks: move audio-clocks " Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 10/20] ASoC: dt-bindings: q6dsp: add q6apm-lpass-dai compatible Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 11/20] ASoC: dt-bindings: lpass-clocks: add q6prm clocks compatible Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 12/20] ASoC: dt-bindings: add q6apm digital audio stream bindings Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 13/20] ASoC: qdsp6: audioreach: add basic pkt alloc support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 14/20] ASoC: qdsp6: audioreach: add q6apm support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 15/20] ASoC: qdsp6: audioreach: add module configuration command helpers Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 16/20] ASoC: qdsp6: audioreach: add topology support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 17/20] ASoC: qdsp6: audioreach: add q6apm-dai support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 18/20] ASoC: qdsp6: audioreach: add q6apm lpass dai support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 19/20] ASoC: qdsp6: audioreach: add q6prm support Srinivas Kandagatla
2021-08-09 11:23 ` [PATCH v4 20/20] ASoC: qdsp6: audioreach: add support for q6prm-clocks Srinivas Kandagatla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b5844827-3c78-9a13-776e-ff41f49685db@linaro.org \
    --to=srinivas.kandagatla@linaro.org \
    --cc=alsa-devel@alsa-project.org \
    --cc=bgoswami@codeaurora.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=perex@perex.cz \
    --cc=plai@codeaurora.org \
    --cc=robh@kernel.org \
    --cc=tiwai@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).