[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAL_JsqLVaJMidm2QcpmxXeT+Q+uU8esm1shdRs3BVoeRYqhJng@mail.gmail.com>
Date: Wed, 29 Jan 2020 17:50:12 -0600
From: Rob Herring <robh+dt@...nel.org>
To: Doug Anderson <dianders@...omium.org>
Cc: Stephen Boyd <sboyd@...nel.org>, Taniya Das <tdas@...eaurora.org>,
Jeffrey Hugo <jhugo@...eaurora.org>,
Abhishek Sahu <absahu@...eaurora.org>, sivaprak@...eaurora.org,
anusharao@...eaurora.org, Sricharan <sricharan@...eaurora.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Michael Turquette <mturquette@...libre.com>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>,
linux-arm-msm <linux-arm-msm@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Andy Gross <agross@...nel.org>,
Mark Rutland <mark.rutland@....com>,
linux-clk <linux-clk@...r.kernel.org>
Subject: Re: [PATCH] dt-bindings: clk: qcom: Fix self-validation, split, and
clean cruft
On Wed, Jan 29, 2020 at 5:26 PM Doug Anderson <dianders@...omium.org> wrote:
>
> Hi,
>
> On Wed, Jan 29, 2020 at 2:01 PM Rob Herring <robh+dt@...nel.org> wrote:
> >
> > On Wed, Jan 29, 2020 at 3:23 PM Douglas Anderson <dianders@...omium.org> wrote:
> > >
> > > The 'qcom,gcc.yaml' file failed self-validation (dt_binding_check)
> > > because it required a property to be either (3 entries big),
> > > (3 entries big), or (7 entries big), but not more than one of those
> > > things. That didn't make a ton of sense.
> > >
> > > This patch splits all of the exceptional device trees (AKA those that
> > > would have needed if/then/else rules) from qcom,gcc.yaml. It also
> > > cleans up some cruft found while doing that.
> > >
> > > After this lands, this worked for me atop clk-next:
> > > for f in \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-apq8064.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-ipq8074.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-msm8998.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-qcs404.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc-sm8150.yaml \
> > > Documentation/devicetree/bindings/clock/qcom,gcc.yaml; do \
> > > ARCH=arm64 make dt_binding_check DT_SCHEMA_FILES=$f; \
> > > ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=$f; \
> > > done
> >
> > Note that using DT_SCHEMA_FILES may hide some errors in examples as
> > all other schemas (including the core ones) are not used for
> > validation. So just 'make dt_binding_check' needs to pass (ignoring
> > any other unrelated errors as it breaks frequently). Supposedly a
> > patch is coming explaining this in the documentation.
>
> That seems like it's going to be a huge pain going forward, but OK.
Use of DT_SCHEMA_FILES hiding problems or having to run 'make
dt_binding_check' on everything?
I could probably rework things such that you can check a single
binding example against all schema, but dtbs still get validated by
just a single schema.
The other option is proper makefiles in every directory so you can do
'make Documentation/devicetree/bindings/clk/'. But like compiling a
directory, that doesn't catch all issues (linking).
> I
> kept running "dtbs_check" with the DT_SCHEMA_FILES since I guess this
> was OK? Then I ran this atop next-20200129:
Yes, that's really where DT_SCHEMA_FILES is most useful IMO.
> # Delete broken yaml:
> rm Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml
Been waiting on the fix to be applied since Dec...
> ARCH=arm64 make dt_binding_check | grep 'clock/qcom'
>
> ...and that seemed OK to me. I've updated the commit message to
> include what I did. Hopefully it's right.
Probably is. There are cases where a new schema breaks another file's
example. If someone has a gcc node in another example for example.
Rob
Powered by blists - more mailing lists