[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-mmc
Subject:    Aw: Re:  Re: [PATCH v1 1/2] dt-bindings: mmc: mtk-sd: update assigned-clocks/clock-parents for mt798
From:       Frank Wunderlich <frank-w () public-files ! de>
Date:       2023-06-27 14:10:06
Message-ID: trinity-4dd71d69-5514-4da0-8c18-a5676a311df2-1687875006833 () 3c-app-gmx-bs07
[Download RAW message or body]

Hi


> Gesendet: Dienstag, 27. Juni 2023 um 15:37 Uhr
> Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>
> On 27/06/2023 14:09, Frank Wunderlich wrote:
> > > Gesendet: Dienstag, 27. Juni 2023 um 12:44 Uhr
> > > Von: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>
> > > Betreff: Re: [PATCH v1 1/2] dt-bindings: mmc: mtk-sd: update \
> > > assigned-clocks/clock-parents for mt7986 
> > > On 25/06/2023 21:11, Frank Wunderlich wrote:
> > > > From: Frank Wunderlich <frank-w@public-files.de>
> > > > 
> > > > MT7986 has 2 clock-parents so update the binding for it.
> > > 
> > > You didn't test it, I think. If you do, then you will see errors from
> > > other trees.
> > 
> > Hi,
> > 
> > i tested it of course...which errors do you see?
> 
> The top-level said it can be maximum 1, so raising it in allOf:if:then:
> should not be enough

but the previous error with too long list wasn't there after the change...so it seems \
to work...if it right, i don't know, but other properties are overriddedn the same \
way.

> > 11
> > this is basicly how i tested it (in case anything has changed):
> > 
> > logfile=dtbs_arm64.log
> > exec 3> >(tee $logfile)
> > ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make DT_CHECKER_FLAGS=-m \
> > dt_binding_check 2>&3 if [[ $? -ne 0 ]];then echo "arm64 binding check \
> > failed!";cat $logfile;exit 1;fi ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make \
> > defconfig #dtbs_check need kernel-config ARCH=arm64 \
> > CROSS_COMPILE=aarch64-linux-gnu- make -j8 DT_CHECKER_FLAGS=-m dtbs_check 2>&3 if \
> > [[ $? -ne 0 ]];then echo "arm64 dtbs_check failed!";cat $logfile;exit 1;fi
> 
> A bit over-complicated... why not running dtbs_check against the schema
> you changed?

it is a script i only start ;) and having a logfile (with all messages - \
stdin+stdout) makes it easier to find something. i had always the problem, that \
second run does not show the errors again without changing the yaml or dts.

as you see below i tried the run against the yaml too, but there are many many \
unrelated compatibles which seem to be not documented or still in txt bindings.

> > and looked into the resulting logfile for keywords like mmc like mtk-sd
> > 
> > i tried running dtbs_check with passing the yaml-file, but of course all \
> > compatibles not matching this file were reported. 
> > ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j6 DT_CHECKER_FLAGS=-m \
> > dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/mmc/mtk-sd.yaml 
> > but this spits out many errors "failed to match any schema with compatible" \
> > because i defined only the changed one... 
> > maybe there is another way to check only one yaml file against all dtbs without \
> > these unrelated errors. 
> > pipeline in dt-bindings-patchwork is clean too
> > https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230625191151.7808-2-linux@fw-web.de/
> > 
> 
> Maybe that binding just fails to apply to DTS because of missing or not
> correct compatibles.

the messages are unrelated to current yaml file i passed with the DT_SCHEMA_FILES \
parameter, e.g. the last messages:

	From schema: Documentation/devicetree/bindings/display/mediatek/mediatek,dsi.yaml
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@15020000: failed to match any schema with compatible: \
['mediatek,mt8183-imgsys', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@16000000: failed to match any schema with compatible: \
['mediatek,mt8183-vdecsys', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@17000000: failed to match any schema with compatible: \
['mediatek,mt8183-vencsys', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@19000000: failed to match any schema with compatible: \
['mediatek,mt8183-ipu_conn', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@19010000: failed to match any schema with compatible: \
['mediatek,mt8183-ipu_adl', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@19180000: failed to match any schema with compatible: \
['mediatek,mt8183-ipu_core0', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@19280000: failed to match any schema with compatible: \
['mediatek,mt8183-ipu_core1', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: \
/soc/syscon@1a000000: failed to match any schema with compatible: \
['mediatek,mt8183-camsys', 'syscon'] \
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb:0:0: /mt8183-sound: \
failed to match any schema with compatible: \
                ['mediatek,mt8183_mt6358_ts3a227_max98357']
arch/arm64/boot/dts/mediatek/mt8183-kukui-jacuzzi-burnet.dtb: bt-sco: \
'#sound-dai-cells' is a required property

> > > Anyway, I don't understand why defining it in the first place. Just drop
> > > the assigned-clock* from the binding.
> > 
> > as it was defined (not looked where it was used) i only used the soc-specific \
> > branch to update the MaxItems...just to not break anything. After that the \
> > message i got before was fixed 
> > arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: mmc@11230000: \
> >                 assigned-clocks: [[4, 35], [4, 34]] is too long
> > arch/arm64/boot/dts/mediatek/mt7986a-bananapi-bpi-r3.dtb: mmc@11230000: \
> > assigned-clock-parents: [[5, 6], [4, 18]] is too long 
> > but if the right way is to drop the MaxItems from generic (or the property itself \
> > - where is it taken from then?). The only include i see is \
> > Documentation/devicetree/bindings/mmc/mmc-controller.yaml and there the \
> > assigned-clock* is not defined. And the
> 
> The way is to entirely drop assigned-clocks. I don't think there are
> much benefits of having them in the bindings. Maybe if specific rates
> are required, then yes - device cannot work with other rates and you can
> verify it with dtbs_check. But otherwise it is like adding values of
> 'reg' or 'interrupts'. Plus some board might require third item and then
> what?

mhm, disabled all assigned-clock* properties and do not get any messages about this \
(don't know why because of "unevaluatedProperties: false", but looks like it works)

there are only some syscon-nodes in mt8173-*.dtb where these properties used are \
reported

btw. need binding also be backported to stable? so do i need to add the tag there?

regards Frank


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic