All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robh@kernel.org>
To: "Pali Rohár" <pali@kernel.org>
Cc: "Marek Behún" <kabel@kernel.org>,
	devicetree@vger.kernel.org, PCI <linux-pci@vger.kernel.org>,
	"Bjorn Helgaas" <helgaas@kernel.org>
Subject: Re: [PATCH dt + pci 1/2] dt-bindings: Add 'slot-power-limit-milliwatt' PCIe port property
Date: Fri, 12 Nov 2021 14:56:26 -0600	[thread overview]
Message-ID: <CAL_Jsq+0ByuPqGw0L94qJktMy+J2XyGUQ1ZRjkBoMGX+ggBizw@mail.gmail.com> (raw)
In-Reply-To: <20211112171249.46xmj5zo3svm4qn2@pali>

On Fri, Nov 12, 2021 at 11:12 AM Pali Rohár <pali@kernel.org> wrote:
>
> On Friday 12 November 2021 10:30:01 Rob Herring wrote:
> > On Fri, Nov 12, 2021 at 9:32 AM Pali Rohár <pali@kernel.org> wrote:
> > >
> > > On Friday 12 November 2021 09:25:20 Rob Herring wrote:
> > > > On Sun, Oct 31, 2021 at 04:07:05PM +0100, Marek Behún wrote:
> > > > > +   If present, this property specifies slot power limit in milliwatts. Host
> > > > > +   drivers can parse this property and use it for programming Root Port or host
> > > > > +   bridge, or for composing and sending PCIe Set_Slot_Power_Limit messages
> > > > > +   through the Root Port or host bridge when transitioning PCIe link from a
> > > > > +   non-DL_Up Status to a DL_Up Status.
> > > >
> > > > If your slots are behind a switch, then doesn't this apply to any bridge
> > > > port?
> > >
> > > The main issue here is that pci.txt (and also scheme on github) is
> > > mixing host bridge and root ports into one node. This new property
> > > should be defined at the same place where is supports-clkreq or
> > > reset-gpios, as it belongs to them.
> >
> > Unfortunately that ship has already sailed. So we can split things up,
> > but we still have to allow for the existing cases. I'm happy to take
> > changes splitting up pci-bus.yaml to 2 or 3 schemas (host bridge,
> > root-port, and PCI(e)-PCI(e) bridge?).
>
> Well, no problem. I just need to know how you want to handle backward
> compatibility definitions in YAML. Because it is possible via versioning
> (like in JSONSchema-like structures in OpenAPI versioning) or via

Got a pointer to that?

> deprecated attributes or via defining two schemas (one strict and one
> loose)... There are lot of options and I saw all these options in
> different projects which use YAML or JSON.

The short answer is we don't have a defined way beyond deprecating
properties within a given binding with 'deprecated: true'. The only
versioning we have ATM is the kernel requires a minimum version of
dtschema (which we'll have to bump for all this).

We could have something like:

old-pci-bridge.yaml:
  allOf:
    - $ref: pci-host-bridge.yaml#
    - $ref: pcie-port.yaml#

new-pci-bridge.yaml:
  allOf:
    - $ref: pci-host-bridge.yaml#
  properties:
    pci@0:
      $ref: pcie-port.yaml#

And then both of the above schemas will have $ref to a pci-bridge.yaml
schema which should be most of pci-bus.yaml. linux,pci-domain and
dma-ranges? go to pci-host-bridge.yaml. max-link-speed, num-lanes,
reset-gpios, slot-power-limit-milliwatt, and the pending supply
additions (Broadcom) go to pcie-port.yaml.

> I did not know about github repository, I always looked at schemas and
> definitions only in linux kernel tree and external files which were
> mentioned in kernel tree.
>
> Something I wrote in my RFC email, but I wrote this email patch...
> https://lore.kernel.org/linux-pci/20211023144252.z7ou2l2tvm6cvtf7@pali/

I think we're pretty much in alignment. Look at the Broadcom portdrv
changes proposed if you haven't already. It's all interrelated.

Rob

  parent reply	other threads:[~2021-11-12 20:56 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-31 15:07 [PATCH dt + pci 1/2] dt-bindings: Add 'slot-power-limit-milliwatt' PCIe port property Marek Behún
2021-10-31 15:07 ` [PATCH dt + pci 2/2] PCI: Add function for parsing `slot-power-limit-milliwatt` DT property Marek Behún
2022-01-07 18:04   ` Marek Behún
2022-01-07 21:17   ` Rob Herring
2022-01-12 22:08   ` Bjorn Helgaas
2022-01-12 22:28     ` Pali Rohár
2022-01-13  0:00       ` Bjorn Helgaas
2021-11-12 15:25 ` [PATCH dt + pci 1/2] dt-bindings: Add 'slot-power-limit-milliwatt' PCIe port property Rob Herring
2021-11-12 15:32   ` Pali Rohár
2021-11-12 16:30     ` Rob Herring
2021-11-12 17:12       ` Pali Rohár
2021-11-12 17:24         ` Marek Behún
2021-11-12 20:56         ` Rob Herring [this message]
2021-11-13 11:31           ` Pali Rohár
2021-11-16 21:31             ` Pali Rohár
2022-01-05 14:14   ` Marek Behún
2022-01-05 14:27     ` Rob Herring
2022-01-05 15:14       ` Pali Rohár
2022-01-05 15:26         ` Rob Herring
2022-01-05 15:36           ` Pali Rohár
2022-01-05 17:11           ` Marek Behún
2022-02-18 11:31 ` Pali Rohár

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=CAL_Jsq+0ByuPqGw0L94qJktMy+J2XyGUQ1ZRjkBoMGX+ggBizw@mail.gmail.com \
    --to=robh@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=helgaas@kernel.org \
    --cc=kabel@kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=pali@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.