diff mbox series

[1/2] dt-bindings:pci: Set LTSSM Detect.Quiet state delay.

Message ID 20210309073142.13219-2-nadeem@cadence.com (mailing list archive)
State Superseded
Delegated to: Lorenzo Pieralisi
Headers show
Series PCI: cadence: Set LTSSM Detect.Quiet state delay. | expand

Commit Message

Athani Nadeem Ladkhan March 9, 2021, 7:31 a.m. UTC
The parameter detect-quiet-min-delay can be used to program the minimum
time that LTSSM waits on entering Detect.Quiet state.
00 : 0us minimum wait time in Detect.Quiet state.
01 : 100us minimum wait time in Detect.Quiet state.
10 : 1000us minimum wait time in Detect.Quiet state.
11 : 2000us minimum wait time in Detect.Quiet state.

Signed-off-by: Nadeem Athani <nadeem@cadence.com>
---
 .../devicetree/bindings/pci/cdns,cdns-pcie-host.yaml        | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Rob Herring March 9, 2021, 4:46 p.m. UTC | #1
On Tue, Mar 9, 2021 at 12:31 AM Nadeem Athani <nadeem@cadence.com> wrote:
>
> The parameter detect-quiet-min-delay can be used to program the minimum
> time that LTSSM waits on entering Detect.Quiet state.
> 00 : 0us minimum wait time in Detect.Quiet state.
> 01 : 100us minimum wait time in Detect.Quiet state.
> 10 : 1000us minimum wait time in Detect.Quiet state.
> 11 : 2000us minimum wait time in Detect.Quiet state.

What determines this setting? Is it per board or SoC? Is this a
standard PCI timing thing? Why does this need to be tuned per
platform?

> Signed-off-by: Nadeem Athani <nadeem@cadence.com>
> ---
>  .../devicetree/bindings/pci/cdns,cdns-pcie-host.yaml        | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> index 293b8ec318bc..a1d56e0be419 100644
> --- a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> +++ b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> @@ -27,6 +27,18 @@ properties:
>
>    msi-parent: true
>
> +  detect-quiet-min-delay:
> +    description:
> +      LTSSM Detect.Quiet state minimum delay.
> +      00 : 0us minimum wait time
> +      01 : 100us minimum wait time
> +      10 : 1000us minimum wait time
> +      11 : 2000us minimum wait time
> +    $ref: /schemas/types.yaml#/definitions/uint32
> +    minimum: 0
> +    maximum: 3
> +    default: 0
> +
>  required:
>    - reg
>    - reg-names
> @@ -48,6 +60,7 @@ examples:
>              linux,pci-domain = <0>;
>              vendor-id = <0x17cd>;
>              device-id = <0x0200>;
> +            detect-quiet-min-delay = <0>;
>
>              reg = <0x0 0xfb000000  0x0 0x01000000>,
>                    <0x0 0x41000000  0x0 0x00001000>;
> --
> 2.15.0
>
Rob Herring (Arm) March 9, 2021, 5:19 p.m. UTC | #2
On Tue, 09 Mar 2021 08:31:41 +0100, Nadeem Athani wrote:
> The parameter detect-quiet-min-delay can be used to program the minimum
> time that LTSSM waits on entering Detect.Quiet state.
> 00 : 0us minimum wait time in Detect.Quiet state.
> 01 : 100us minimum wait time in Detect.Quiet state.
> 10 : 1000us minimum wait time in Detect.Quiet state.
> 11 : 2000us minimum wait time in Detect.Quiet state.
> 
> Signed-off-by: Nadeem Athani <nadeem@cadence.com>
> ---
>  .../devicetree/bindings/pci/cdns,cdns-pcie-host.yaml        | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 

My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:
./Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml:33:10: [error] syntax error: mapping values are not allowed here (syntax)

dtschema/dtc warnings/errors:
./Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml:  mapping values are not allowed in this context
  in "<unicode string>", line 33, column 10
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml: ignoring, error parsing file
warning: no schema found in file: ./Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
Traceback (most recent call last):
  File "/usr/local/bin/dt-extract-example", line 45, in <module>
    binding = yaml.load(open(args.yamlfile, encoding='utf-8').read())
  File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/main.py", line 343, in load
    return constructor.get_single_data()
  File "/usr/local/lib/python3.8/dist-packages/ruamel/yaml/constructor.py", line 111, in get_single_data
    node = self.composer.get_single_node()
  File "_ruamel_yaml.pyx", line 706, in _ruamel_yaml.CParser.get_single_node
  File "_ruamel_yaml.pyx", line 724, in _ruamel_yaml.CParser._compose_document
  File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node
  File "_ruamel_yaml.pyx", line 889, in _ruamel_yaml.CParser._compose_mapping_node
  File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node
  File "_ruamel_yaml.pyx", line 889, in _ruamel_yaml.CParser._compose_mapping_node
  File "_ruamel_yaml.pyx", line 775, in _ruamel_yaml.CParser._compose_node
  File "_ruamel_yaml.pyx", line 891, in _ruamel_yaml.CParser._compose_mapping_node
  File "_ruamel_yaml.pyx", line 904, in _ruamel_yaml.CParser._parse_next_event
ruamel.yaml.scanner.ScannerError: mapping values are not allowed in this context
  in "<unicode string>", line 33, column 10
make[1]: *** [Documentation/devicetree/bindings/Makefile:20: Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.example.dts] Error 1
make[1]: *** Deleting file 'Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.example.dts'
make: *** [Makefile:1380: dt_binding_check] Error 2

See https://patchwork.ozlabs.org/patch/1449563

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Athani Nadeem Ladkhan March 14, 2021, 6:56 p.m. UTC | #3
Hi Rob,

> -----Original Message-----
> From: Rob Herring <robh+dt@kernel.org>
> Sent: Tuesday, March 9, 2021 10:17 PM
> To: Athani Nadeem Ladkhan <nadeem@cadence.com>
> Cc: Tom Joseph <tjoseph@cadence.com>; Bjorn Helgaas
> <bhelgaas@google.com>; PCI <linux-pci@vger.kernel.org>;
> devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Lorenzo Pieralisi
> <lorenzo.pieralisi@arm.com>; Kishon Vijay Abraham I <kishon@ti.com>;
> Milind Parab <mparab@cadence.com>; Swapnil Kashinath Jakhade
> <sjakhade@cadence.com>; Parshuram Raju Thombare
> <pthombar@cadence.com>
> Subject: Re: [PATCH 1/2] dt-bindings:pci: Set LTSSM Detect.Quiet state delay.
> 
> EXTERNAL MAIL
> 
> 
> On Tue, Mar 9, 2021 at 12:31 AM Nadeem Athani <nadeem@cadence.com>
> wrote:
> >
> > The parameter detect-quiet-min-delay can be used to program the
> > minimum time that LTSSM waits on entering Detect.Quiet state.
> > 00 : 0us minimum wait time in Detect.Quiet state.
> > 01 : 100us minimum wait time in Detect.Quiet state.
> > 10 : 1000us minimum wait time in Detect.Quiet state.
> > 11 : 2000us minimum wait time in Detect.Quiet state.
> 
> What determines this setting? Is it per board or SoC? Is this a standard PCI
> timing thing? Why does this need to be tuned per platform?
The pcie spec. says this delay to be between 0 to 1ms.
The default 0 value works in most cases.
However it has been found that some SOC may require this delay to be greater than 0.
This has been proved by an internal simulation experiments.
Hence providing this feature in device tree for required SOC's.
> 
> > Signed-off-by: Nadeem Athani <nadeem@cadence.com>
> > ---
> >  .../devicetree/bindings/pci/cdns,cdns-pcie-host.yaml        | 13
> +++++++++++++
> >  1 file changed, 13 insertions(+)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> > b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> > index 293b8ec318bc..a1d56e0be419 100644
> > --- a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> > +++ b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
> > @@ -27,6 +27,18 @@ properties:
> >
> >    msi-parent: true
> >
> > +  detect-quiet-min-delay:
> > +    description:
> > +      LTSSM Detect.Quiet state minimum delay.
> > +      00 : 0us minimum wait time
> > +      01 : 100us minimum wait time
> > +      10 : 1000us minimum wait time
> > +      11 : 2000us minimum wait time
> > +    $ref: /schemas/types.yaml#/definitions/uint32
> > +    minimum: 0
> > +    maximum: 3
> > +    default: 0
> > +
> >  required:
> >    - reg
> >    - reg-names
> > @@ -48,6 +60,7 @@ examples:
> >              linux,pci-domain = <0>;
> >              vendor-id = <0x17cd>;
> >              device-id = <0x0200>;
> > +            detect-quiet-min-delay = <0>;
> >
> >              reg = <0x0 0xfb000000  0x0 0x01000000>,
> >                    <0x0 0x41000000  0x0 0x00001000>;
> > --
> > 2.15.0
> >
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
index 293b8ec318bc..a1d56e0be419 100644
--- a/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
+++ b/Documentation/devicetree/bindings/pci/cdns,cdns-pcie-host.yaml
@@ -27,6 +27,18 @@  properties:
 
   msi-parent: true
 
+  detect-quiet-min-delay:
+    description:
+      LTSSM Detect.Quiet state minimum delay.
+      00 : 0us minimum wait time
+      01 : 100us minimum wait time
+      10 : 1000us minimum wait time
+      11 : 2000us minimum wait time
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 0
+    maximum: 3
+    default: 0
+
 required:
   - reg
   - reg-names
@@ -48,6 +60,7 @@  examples:
             linux,pci-domain = <0>;
             vendor-id = <0x17cd>;
             device-id = <0x0200>;
+            detect-quiet-min-delay = <0>;
 
             reg = <0x0 0xfb000000  0x0 0x01000000>,
                   <0x0 0x41000000  0x0 0x00001000>;