Linux ARM-MSM sub-architecture
 help / color / mirror / Atom feed
From: Tingwei Zhang <quic_tingweiz@quicinc.com>
To: Rob Herring <robh@kernel.org>, Tao Zhang <quic_taozha@quicinc.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>,
	Suzuki K Poulose <suzuki.poulose@arm.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Konrad Dybcio <konradybcio@gmail.com>,
	Mike Leach <mike.leach@linaro.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	Jinlong Mao <quic_jinlmao@quicinc.com>,
	Leo Yan <leo.yan@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	<coresight@lists.linaro.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
	Yuanfang Zhang <quic_yuanfang@quicinc.com>,
	Trilok Soni <quic_tsoni@quicinc.com>,
	Song Chai <quic_songchai@quicinc.com>,
	<linux-arm-msm@vger.kernel.org>, <andersson@kernel.org>
Subject: Re: [PATCH 1/4] dt-bindings: arm: qcom,coresight-funnel: Add label for multi-ouput
Date: Fri, 22 Mar 2024 15:02:22 +0800	[thread overview]
Message-ID: <443edf61-2a28-4ae7-ac88-2da2d29cebe3@quicinc.com> (raw)
In-Reply-To: <20240321144226.GA1689544-robh@kernel.org>

On 3/21/2024 10:42 PM, Rob Herring wrote:
> On Thu, Mar 21, 2024 at 04:32:04PM +0800, Tao Zhang wrote:
>> Add new property "label" to label the source corresponding to the
>> output connection. When the funnel supports multi-output, this
>> property needs to be introduced to mark which source component a
>> certain output connection corresponds to.
>>
>> Signed-off-by: Tao Zhang <quic_taozha@quicinc.com>
>> ---
>>   .../arm/arm,coresight-dynamic-funnel.yaml     | 34 ++++++++++++++++---
>>   1 file changed, 30 insertions(+), 4 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
>> index 44a1041cb0fc..cde62c286d29 100644
>> --- a/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
>> +++ b/Documentation/devicetree/bindings/arm/arm,coresight-dynamic-funnel.yaml
>> @@ -66,13 +66,39 @@ properties:
>>           $ref: /schemas/graph.yaml#/properties/port
>>   
>>     out-ports:
>> -    $ref: /schemas/graph.yaml#/properties/ports
>> -    additionalProperties: false
>> -
>> +    type: object
>>       properties:
>> +      "#address-cells":
>> +        const: 1
>> +
>> +      "#size-cells":
>> +        const: 0
>> +
>>         port:
>> +        type: object
>> +
>> +    patternProperties:
>> +      '^port(@[0-7])?$':
>> +        type: object
>>           description: Output connection to CoreSight Trace bus
>> -        $ref: /schemas/graph.yaml#/properties/port
> 
> Nope, now you have no constraints on port node properties. Please look
> at how other bindings are done to add properties on endpoint node.
> 
Thanks for pointing this out, Rob. Shall we ref port-base and
endpoint-base then add new properties on endpoint? In this way, the 
redundant code from port schema is not required.
>> +
>> +        patternProperties:
>> +          "^endpoint(@[0-9a-f]+)?$":
>> +            type: object
>> +            properties:
>> +              remote-endpoint:
>> +                description: |
>> +                  phandle to an 'endpoint' subnode of a remote device node.
>> +                  $ref: /schemas/types.yaml#/definitions/phandle
> 
> Don't need this.
> 
>> +              label:
>> +                description: Label the source corresponding to the output connection
>> +                $ref: /schemas/types.yaml#/definitions/string
> 
> label already has a type.
> 
> As this node is an output, aren't you labeling what the destination is,
> not the "source"?
> 
> Why can't you look at the remote connection to identify what it is?
>
This funnel can route data stream from different trace source to 
different output ports. This lable property is added to describe which 
source is routed to this output port.

For example, the graph is as below. Funnel3 routes trace data from TPDM0 
to output[0] and output[0] of funnel3 is connected to input[0] of TPDA0.
While Funnels routes trace data from TPDM1 to output[1] which connects 
to input[1] of TPDA0. Hope that clarifies this a little bit.

|---------|    |---------|    |---------|    |---------|    |---------|
|  TPDM0  |    |  TPDM1  |    |  TPDM2  |    |  TPDM3  |    |  TPDM4  |
|---------|    |---------|    |---------|    |---------|    |---------|
     |               |             |               |              |
     |               |             |               |              |
     |               |             |               |              |
     |-----|   |-----|             |-----|   |-----|              |
           |   |                         |   |                    |
           |   |                         |   |                    |
        [0]|   |[1]                   [0]|   |[1]                 |
      \-------------/               \-------------/        \------------/
       \  FUNNEL0  /                 \  FUNNEL1  /          \  FUNNEL2  /
        -----------                   -----------            -----------
             |                             |                      |
      \-------------/               \-------------/               |
       \  FUNNEL3  /                 \  FUNNEL4  /                |
        -----------                   -----------                 |
           |  |                         |   |
        [0]|  |[1]                   [0]|   |[1]                  |
           |  |----------               |   |                     |
           |            |               |   |                     |
           |-------|    |      |------- |   |          |--------- |
                   |    |      |            |          |
                   |    |      |            |          |
                [0]|    |[1]   |[2]         |[3]       |[4]
            \ ---------------------------------------------------/
             \                     TPDA0                        /
              \                                                /
               ------------------------------------------------

> 
>> +    oneOf:
>> +      - required:
>> +          - port
>> +      - required:
>> +          - "#address-cells"
>> +          - "#size-cells"
> 
> The common schema that you removed handles this.
> 
> Rob

-- 
Thanks,
Tingwei


  parent reply	other threads:[~2024-03-22  7:03 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21  8:32 [PATCH 0/4] Add support for multi-port output on the funnel Tao Zhang
2024-03-21  8:32 ` [PATCH 1/4] dt-bindings: arm: qcom,coresight-funnel: Add label for multi-ouput Tao Zhang
2024-03-21 14:42   ` Rob Herring
2024-03-21 14:52     ` Suzuki K Poulose
2024-03-22  7:02     ` Tingwei Zhang [this message]
2024-03-22  9:42       ` Suzuki K Poulose
2024-03-22 10:22         ` Tingwei Zhang
2024-03-21  8:32 ` [PATCH 2/4] coresight: Add support for multiple output ports on the funnel Tao Zhang
2024-03-21 16:41   ` Suzuki K Poulose
2024-03-29  9:27     ` Tao Zhang
2024-04-08 13:28       ` Mike Leach
2024-04-09  7:13       ` Suzuki K Poulose
2024-04-09 13:22         ` Tao Zhang
2024-04-15 13:24           ` Suzuki K Poulose
2024-04-16 14:19             ` Mike Leach
2024-04-17  9:21               ` Suzuki K Poulose
2024-04-18  8:48                 ` Mike Leach
2024-04-18  8:59                   ` Suzuki K Poulose
2024-04-18  9:25                     ` Mike Leach
2024-04-18 12:01                       ` Tingwei Zhang
2024-04-18 12:38                         ` Suzuki K Poulose
2024-04-19  2:11                           ` Tingwei Zhang
2024-03-21  8:32 ` [PATCH 3/4] dt-bindings: arm: qcom,coresight-tpdm: Mark tpda input port number Tao Zhang
2024-03-21  8:32 ` [PATCH 4/4] coresight-tpda: Add support multi-port input on TPDA Tao Zhang

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=443edf61-2a28-4ae7-ac88-2da2d29cebe3@quicinc.com \
    --to=quic_tingweiz@quicinc.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=andersson@kernel.org \
    --cc=coresight@lists.linaro.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=konradybcio@gmail.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.poirier@linaro.org \
    --cc=mike.leach@linaro.org \
    --cc=quic_jinlmao@quicinc.com \
    --cc=quic_songchai@quicinc.com \
    --cc=quic_taozha@quicinc.com \
    --cc=quic_tsoni@quicinc.com \
    --cc=quic_yuanfang@quicinc.com \
    --cc=robh@kernel.org \
    --cc=suzuki.poulose@arm.com \
    /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