From: Colin Foster <colin.foster@in-advantage.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: "Rob Herring" <robh@kernel.org>,
linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Claudiu Manoil" <claudiu.manoil@nxp.com>,
"John Crispin" <john@phrozen.org>,
"Sean Wang" <sean.wang@mediatek.com>,
"DENG Qingfang" <dqfext@gmail.com>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"nç ÜNAL" <arinc.unal@arinc9.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Paolo Abeni" <pabeni@redhat.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Eric Dumazet" <edumazet@google.com>,
"David S. Miller" <davem@davemloft.net>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Lee Jones" <lee@kernel.org>
Subject: Re: [PATCH v1 net-next 3/7] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml
Date: Wed, 26 Oct 2022 20:35:12 -0700 [thread overview]
Message-ID: <Y1n8cH0hkL4YjU1D@euler> (raw)
In-Reply-To: <20221027012553.zb3zjwmw3x6kw566@skbuf>
Hi Rob and Vladimir,
On Thu, Oct 27, 2022 at 04:25:53AM +0300, Vladimir Oltean wrote:
> Hi Rob,
>
> On Tue, Oct 25, 2022 at 04:21:14PM -0500, Rob Herring wrote:
> > On Mon, Oct 24, 2022 at 10:03:51PM -0700, Colin Foster wrote:
> > > The dsa.yaml binding contains duplicated bindings for address and size
> > > cells, as well as the reference to dsa-port.yaml. Instead of duplicating
> > > this information, remove the reference to dsa-port.yaml and include the
> > > full reference to dsa.yaml.
> >
> > I don't think this works without further restructuring. Essentially,
> > 'unevaluatedProperties' on works on a single level. So every level has
> > to define all properties at that level either directly in
> > properties/patternProperties or within a $ref.
> >
> > See how graph.yaml is structured and referenced for an example how this
> > has to work.
> >
> > > @@ -104,8 +98,6 @@ patternProperties:
> > > SGMII on the QCA8337, it is advised to set this unless a communication
> > > issue is observed.
> > >
> > > - unevaluatedProperties: false
> > > -
> >
> > Dropping this means any undefined properties in port nodes won't be an
> > error. Once I fix all the issues related to these missing, there will be
> > a meta-schema checking for this (this could be one I fixed already).
>
> I may be misreading, but here, "unevaluatedProperties: false" from dsa.yaml
> (under patternProperties: "^(ethernet-)?port@[0-9]+$":) is on the same
> level as the "unevaluatedProperties: false" that Colin is deleting.
>
> In fact, I believe that it is precisely due to the "unevaluatedProperties: false"
> from dsa.yaml that this is causing a failure now:
>
> net/dsa/qca8k.example.dtb: switch@10: ports:port@6: Unevaluated properties are not allowed ('qca,sgmii-rxclk-falling-edge' was unexpected)
>
> Could you please explain why is the 'qca,sgmii-rxclk-falling-edge'
> property not evaluated from the perspective of dsa.yaml in the example?
> It's a head scratcher to me.
>
> May it have something to do with the fact that Colin's addition:
>
> $ref: "dsa.yaml#"
>
> is not expressed as:
>
> allOf:
> - $ref: "dsa.yaml#"
>
> ?
Looking into documentation (I promise I did some reading / research to
try to get a stronger understanding of the documentation yaml) I came
across the history of ethernet-controller.yaml which suggests to me that
the pattern:
allOf:
- $ref:
is frowned upon
commit 3d21a4609335: ("dt-bindings: Remove cases of 'allOf' containing a
'$ref'")
I do have a knack for misinterpreting data, but I read that as:
allOf:
- $ref:
shouldn't be used unless there's more than one list entry.
All that aside, I did upgrade from 2022.5 to 2022.9 just now and do see
these dtschema errors now. I'll be sure to use this before resubmitting.
>
> If yes, can you explain exactly what is the difference with respect to
> unevaluatedProperties?
>
> > > oneOf:
> > > - required:
> > > - ports
> > > @@ -116,7 +108,7 @@ required:
> > > - compatible
> > > - reg
> > >
> > > -additionalProperties: true
> >
> > This should certainly be changed though. We should only have 'true' for
> > incomplete collections of properties. IOW, for common bindings.
That makes a lot of sense - and helps me understand why I had so much
trouble understanding why it originally was "additionalProperties: true"
I'll obviously take another look at this. The nxp,sja1105.yaml seemed to
be most akin to what the qca8k.yaml needed to be - that is "take
dsa.yaml and add a couple extra properties to the ports nodes". But
there's always subleties.
> >
> > > +unevaluatedProperties: false
WARNING: multiple messages have this Message-ID (diff)
From: Colin Foster <colin.foster@in-advantage.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: "Rob Herring" <robh@kernel.org>,
linux-mediatek@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
"Claudiu Manoil" <claudiu.manoil@nxp.com>,
"John Crispin" <john@phrozen.org>,
"Sean Wang" <sean.wang@mediatek.com>,
"DENG Qingfang" <dqfext@gmail.com>,
"Landen Chao" <Landen.Chao@mediatek.com>,
"nç ÜNAL" <arinc.unal@arinc9.com>,
"Matthias Brugger" <matthias.bgg@gmail.com>,
"Paolo Abeni" <pabeni@redhat.com>,
"Jakub Kicinski" <kuba@kernel.org>,
"Eric Dumazet" <edumazet@google.com>,
"David S. Miller" <davem@davemloft.net>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Vivien Didelot" <vivien.didelot@gmail.com>,
"Andrew Lunn" <andrew@lunn.ch>,
"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
"Lee Jones" <lee@kernel.org>
Subject: Re: [PATCH v1 net-next 3/7] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml
Date: Wed, 26 Oct 2022 20:35:12 -0700 [thread overview]
Message-ID: <Y1n8cH0hkL4YjU1D@euler> (raw)
In-Reply-To: <20221027012553.zb3zjwmw3x6kw566@skbuf>
Hi Rob and Vladimir,
On Thu, Oct 27, 2022 at 04:25:53AM +0300, Vladimir Oltean wrote:
> Hi Rob,
>
> On Tue, Oct 25, 2022 at 04:21:14PM -0500, Rob Herring wrote:
> > On Mon, Oct 24, 2022 at 10:03:51PM -0700, Colin Foster wrote:
> > > The dsa.yaml binding contains duplicated bindings for address and size
> > > cells, as well as the reference to dsa-port.yaml. Instead of duplicating
> > > this information, remove the reference to dsa-port.yaml and include the
> > > full reference to dsa.yaml.
> >
> > I don't think this works without further restructuring. Essentially,
> > 'unevaluatedProperties' on works on a single level. So every level has
> > to define all properties at that level either directly in
> > properties/patternProperties or within a $ref.
> >
> > See how graph.yaml is structured and referenced for an example how this
> > has to work.
> >
> > > @@ -104,8 +98,6 @@ patternProperties:
> > > SGMII on the QCA8337, it is advised to set this unless a communication
> > > issue is observed.
> > >
> > > - unevaluatedProperties: false
> > > -
> >
> > Dropping this means any undefined properties in port nodes won't be an
> > error. Once I fix all the issues related to these missing, there will be
> > a meta-schema checking for this (this could be one I fixed already).
>
> I may be misreading, but here, "unevaluatedProperties: false" from dsa.yaml
> (under patternProperties: "^(ethernet-)?port@[0-9]+$":) is on the same
> level as the "unevaluatedProperties: false" that Colin is deleting.
>
> In fact, I believe that it is precisely due to the "unevaluatedProperties: false"
> from dsa.yaml that this is causing a failure now:
>
> net/dsa/qca8k.example.dtb: switch@10: ports:port@6: Unevaluated properties are not allowed ('qca,sgmii-rxclk-falling-edge' was unexpected)
>
> Could you please explain why is the 'qca,sgmii-rxclk-falling-edge'
> property not evaluated from the perspective of dsa.yaml in the example?
> It's a head scratcher to me.
>
> May it have something to do with the fact that Colin's addition:
>
> $ref: "dsa.yaml#"
>
> is not expressed as:
>
> allOf:
> - $ref: "dsa.yaml#"
>
> ?
Looking into documentation (I promise I did some reading / research to
try to get a stronger understanding of the documentation yaml) I came
across the history of ethernet-controller.yaml which suggests to me that
the pattern:
allOf:
- $ref:
is frowned upon
commit 3d21a4609335: ("dt-bindings: Remove cases of 'allOf' containing a
'$ref'")
I do have a knack for misinterpreting data, but I read that as:
allOf:
- $ref:
shouldn't be used unless there's more than one list entry.
All that aside, I did upgrade from 2022.5 to 2022.9 just now and do see
these dtschema errors now. I'll be sure to use this before resubmitting.
>
> If yes, can you explain exactly what is the difference with respect to
> unevaluatedProperties?
>
> > > oneOf:
> > > - required:
> > > - ports
> > > @@ -116,7 +108,7 @@ required:
> > > - compatible
> > > - reg
> > >
> > > -additionalProperties: true
> >
> > This should certainly be changed though. We should only have 'true' for
> > incomplete collections of properties. IOW, for common bindings.
That makes a lot of sense - and helps me understand why I had so much
trouble understanding why it originally was "additionalProperties: true"
I'll obviously take another look at this. The nxp,sja1105.yaml seemed to
be most akin to what the qca8k.yaml needed to be - that is "take
dsa.yaml and add a couple extra properties to the ports nodes". But
there's always subleties.
> >
> > > +unevaluatedProperties: false
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-10-27 3:35 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-25 5:03 [PATCH v1 net-next 0/7] dt-binding preparation for ocelot switches Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-25 5:03 ` [PATCH v1 net-next 1/7] dt-bindings: mfd: ocelot: remove spi-max-frequency from required properties Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-31 15:36 ` Lee Jones
2022-10-31 15:36 ` Lee Jones
2022-11-01 2:41 ` Colin Foster
2022-11-01 2:41 ` Colin Foster
2022-10-25 5:03 ` [PATCH v1 net-next 2/7] dt-bindings: mfd: ocelot: remove unnecessary driver wording Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-31 15:37 ` Lee Jones
2022-10-31 15:37 ` Lee Jones
2022-10-25 5:03 ` [PATCH v1 net-next 3/7] dt-bindings: net: dsa: qca8k: utilize shared dsa.yaml Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-25 20:05 ` Rob Herring
2022-10-25 20:05 ` Rob Herring
2022-10-25 21:21 ` Rob Herring
2022-10-25 21:21 ` Rob Herring
2022-10-27 1:25 ` Vladimir Oltean
2022-10-27 1:25 ` Vladimir Oltean
2022-10-27 3:35 ` Colin Foster [this message]
2022-10-27 3:35 ` Colin Foster
2022-10-31 15:44 ` Rob Herring
2022-10-31 15:44 ` Rob Herring
2022-11-01 3:47 ` Colin Foster
2022-11-01 3:47 ` Colin Foster
2022-10-27 2:44 ` Colin Foster
2022-10-27 2:44 ` Colin Foster
2022-10-25 5:03 ` [PATCH v1 net-next 4/7] dt-bindings: net: dsa: mediatek,mt7530: remove unnecessary dsa-port reference Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-30 17:42 ` Arınç ÜNAL
2022-10-30 17:42 ` Arınç ÜNAL
2022-11-01 2:40 ` Colin Foster
2022-11-01 2:40 ` Colin Foster
2022-10-25 5:03 ` [PATCH v1 net-next 5/7] dt-bindings: net: add generic ethernet-switch Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-25 5:03 ` [PATCH v1 net-next 6/7] dt-bindings: net: add generic ethernet-switch-port binding Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-26 17:44 ` Rob Herring
2022-10-26 17:44 ` Rob Herring
2022-10-27 4:06 ` Colin Foster
2022-10-27 4:06 ` Colin Foster
2022-10-25 5:03 ` [PATCH v1 net-next 7/7] dt-bindings: net: mscc,vsc7514-switch: utilize generic ethernet-switch.yaml Colin Foster
2022-10-25 5:03 ` Colin Foster
2022-10-25 20:05 ` Rob Herring
2022-10-25 20:05 ` Rob Herring
2022-10-25 21:23 ` Rob Herring
2022-10-25 21:23 ` Rob Herring
2022-10-26 17:47 ` Rob Herring
2022-10-26 17:47 ` Rob Herring
2022-10-27 3:57 ` Colin Foster
2022-10-27 3:57 ` Colin Foster
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=Y1n8cH0hkL4YjU1D@euler \
--to=colin.foster@in-advantage.com \
--cc=Landen.Chao@mediatek.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andrew@lunn.ch \
--cc=arinc.unal@arinc9.com \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=dqfext@gmail.com \
--cc=edumazet@google.com \
--cc=f.fainelli@gmail.com \
--cc=john@phrozen.org \
--cc=krzysztof.kozlowski+dt@linaro.org \
--cc=kuba@kernel.org \
--cc=lee@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=matthias.bgg@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=olteanv@gmail.com \
--cc=pabeni@redhat.com \
--cc=robh@kernel.org \
--cc=sean.wang@mediatek.com \
--cc=vivien.didelot@gmail.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 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.