[PATCH RFC 1/6] dt-bindings: dma: qcom,gpi: Retire passing the protocol ID

Konrad Dybcio posted 6 patches 2 months, 1 week ago
[PATCH RFC 1/6] dt-bindings: dma: qcom,gpi: Retire passing the protocol ID
Posted by Konrad Dybcio 2 months, 1 week ago
From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

This is a software construct that has no business being expressed in
dt-bindings. Drivers can be constructed to retrieve the protocol ID at
runtime or hardcode them per protocol.

Remove it, as a pre-requisite for further simplifying the GENI
bindings.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
 Documentation/devicetree/bindings/dma/qcom,gpi.yaml | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
index bbe4da2a11054f0d272017ddf5d5f7e47cf7a443..745613b93b210afd38946030f7477e91e08c907a 100644
--- a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
+++ b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
@@ -61,14 +61,13 @@ properties:
     maxItems: 13
 
   "#dma-cells":
-    const: 3
+    const: 2
     description: >
       DMA clients must use the format described in dma.txt, giving a phandle
       to the DMA controller plus the following 3 integer cells:
       - channel: if set to 0xffffffff, any available channel will be allocated
         for the client. Otherwise, the exact channel specified will be used.
       - seid: serial id of the client as defined in the SoC documentation.
-      - client: type of the client as defined in dt-bindings/dma/qcom-gpi.h
 
   iommus:
     maxItems: 1
@@ -98,7 +97,7 @@ examples:
     #include <dt-bindings/dma/qcom-gpi.h>
     gpi_dma0: dma-controller@800000 {
         compatible = "qcom,sdm845-gpi-dma";
-        #dma-cells = <3>;
+        #dma-cells = <2>;
         reg = <0x00800000 0x60000>;
         iommus = <&apps_smmu 0x0016 0x0>;
         dma-channels = <13>;

-- 
2.50.1
Re: [PATCH RFC 1/6] dt-bindings: dma: qcom,gpi: Retire passing the protocol ID
Posted by Rob Herring 2 months ago
On Wed, Jul 30, 2025 at 11:33:28AM +0200, Konrad Dybcio wrote:
> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> 
> This is a software construct that has no business being expressed in
> dt-bindings. Drivers can be constructed to retrieve the protocol ID at
> runtime or hardcode them per protocol.
> 
> Remove it, as a pre-requisite for further simplifying the GENI
> bindings.
> 
> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> ---
>  Documentation/devicetree/bindings/dma/qcom,gpi.yaml | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
> index bbe4da2a11054f0d272017ddf5d5f7e47cf7a443..745613b93b210afd38946030f7477e91e08c907a 100644
> --- a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
> +++ b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
> @@ -61,14 +61,13 @@ properties:
>      maxItems: 13
>  
>    "#dma-cells":
> -    const: 3
> +    const: 2

I think you need to keep 3 and note it is deprecated. Does an existing 
kernel support this being 2 already. If not, ABI break...

>      description: >
>        DMA clients must use the format described in dma.txt, giving a phandle
>        to the DMA controller plus the following 3 integer cells:
>        - channel: if set to 0xffffffff, any available channel will be allocated
>          for the client. Otherwise, the exact channel specified will be used.
>        - seid: serial id of the client as defined in the SoC documentation.
> -      - client: type of the client as defined in dt-bindings/dma/qcom-gpi.h
>  
>    iommus:
>      maxItems: 1
> @@ -98,7 +97,7 @@ examples:
>      #include <dt-bindings/dma/qcom-gpi.h>
>      gpi_dma0: dma-controller@800000 {
>          compatible = "qcom,sdm845-gpi-dma";
> -        #dma-cells = <3>;
> +        #dma-cells = <2>;
>          reg = <0x00800000 0x60000>;
>          iommus = <&apps_smmu 0x0016 0x0>;
>          dma-channels = <13>;
> 
> -- 
> 2.50.1
>
Re: [PATCH RFC 1/6] dt-bindings: dma: qcom,gpi: Retire passing the protocol ID
Posted by Konrad Dybcio 2 months ago
On 7/31/25 1:46 AM, Rob Herring wrote:
> On Wed, Jul 30, 2025 at 11:33:28AM +0200, Konrad Dybcio wrote:
>> From: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>
>> This is a software construct that has no business being expressed in
>> dt-bindings. Drivers can be constructed to retrieve the protocol ID at
>> runtime or hardcode them per protocol.
>>
>> Remove it, as a pre-requisite for further simplifying the GENI
>> bindings.
>>
>> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>> ---
>>  Documentation/devicetree/bindings/dma/qcom,gpi.yaml | 5 ++---
>>  1 file changed, 2 insertions(+), 3 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
>> index bbe4da2a11054f0d272017ddf5d5f7e47cf7a443..745613b93b210afd38946030f7477e91e08c907a 100644
>> --- a/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
>> +++ b/Documentation/devicetree/bindings/dma/qcom,gpi.yaml
>> @@ -61,14 +61,13 @@ properties:
>>      maxItems: 13
>>  
>>    "#dma-cells":
>> -    const: 3
>> +    const: 2
> 
> I think you need to keep 3 and note it is deprecated. Does an existing 
> kernel support this being 2 already. If not, ABI break...

Hm, I thought this is a case of relaxing the requirements, although I
suppose some software might have had a "if n_cells != 3" (and not < 3)
check

Konrad