Re: [PATCH v2 1/1] dt-bindings: interrupt-controller: fsl,ls-extirq: workaround wrong interrupt-map number

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 04, 2024 at 08:43:23AM +0200, Krzysztof Kozlowski wrote:
> On Thu, Oct 03, 2024 at 05:43:15PM -0400, Frank Li wrote:
> > The driver(drivers/irqchip/irq-ls-extirq.c) have not use standard DT
> > function to parser interrupt-map. So it doesn't consider '#address-size'
> > in parent interrupt controller, such as GIC.
> >
> > When dt-binding verify interrupt-map, item data matrix is spitted at
> > incorrect position. So cause below warning:
> >
> > arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dtb: interrupt-controller@14:
> > interrupt-map: [[0, 0, 1, 0, 0, 4, 1, 0], [1, 0, 1, 4, 2, 0, 1, 0], ...
> > is too short
> >
> > Reduce minItems and maxItems to workaround this warning for
> > 'fsl,ls1088a-extirq', 'fsl,ls2080a-extirq' and fsl,lx2160a-extirq.
> > Other keep the same restriction.
> >
> > Signed-off-by: Frank Li <Frank.Li@xxxxxxx>
> > ---
> > Change from v1 to v2
> > - remove duplicate function in commit message
> > - only reduce miniItems for after 1088a chips
> > - maxItems change to 9. Otherwise report too long.
> > ---
> >  .../interrupt-controller/fsl,ls-extirq.yaml   | 27 +++++++++++++++++--
> >  1 file changed, 25 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
> > index 199b34fdbefc4..1bfced6ed620c 100644
> > --- a/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
> > +++ b/Documentation/devicetree/bindings/interrupt-controller/fsl,ls-extirq.yaml
> > @@ -82,14 +82,37 @@ allOf:
> >              enum:
> >                - fsl,ls1043a-extirq
> >                - fsl,ls1046a-extirq
> > +    then:
> > +      properties:
> > +        interrupt-map:
> > +          minItems: 12
> > +          maxItems: 12
> > +        interrupt-map-mask:
> > +          items:
> > +            - const: 0xf
> > +            - const: 0
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> >                - fsl,ls1088a-extirq
> >                - fsl,ls2080a-extirq
> >                - fsl,lx2160a-extirq
> > +# The driver(drivers/irqchip/irq-ls-extirq.c) have not use standard DT
> > +# function function to parser interrupt-map. So it doesn't consider
>
> Same issue as last time, double function.
>
> Please run scripts/checkpatch.pl and fix reported warnings. Then please
> run 'scripts/checkpatch.pl --strict' and (probably) fix more warnings.
> Some warnings can be ignored, especially from --strict run, but the code
> here looks like it needs a fix. Feel free to get in touch if the warning
> is not clear.

Thanks, I forget add --strict this time.

>
>
> > +# '#address-size' in parent interrupt controller, such as GIC.
> > +#
> > +# When dt-binding verify interrupt-map, item data matrix is spitted at
> > +# incorrect position. Reduce minItems and maxItems to workaround this
> > +# problem.
> > +
> >      then:
> >        properties:
> >          interrupt-map:
> > -          minItems: 12
> > -          maxItems: 12
> > +          minItems: 8
> > +          maxItems: 9
>
> Are you sure it works? I see 12 items in fsl-ls1088a.dtsi.

interrupt-map =
   <0 0 &gic GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
   <1 0 &gic GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
   ...
   <11 0 &gic GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;

Total 12*6 = 72 data.

Normal each row should be 6 data.

but when GIC have #address-size, <2>,  dt-schemal split at at (6+2=8).

"interrupt-map: [[0, 0, 1, 0, 0, 4, 1, 0], [1, 0, 1, 4, 2, 0, 1, 0]"

So 72/8 = 9, I just realize it can divide to whole number.  so minItems
can be set 9 also.

>
> What's more, I do not see your errors/warnings at all.

I using below command

pip3 install git+https://github.com/devicetree-org/dt-schema.git@main
...
Resolved https://github.com/devicetree-org/dt-schema.git to commit 0934678abc36614cd3c5165ca49ba78b881ee2fa

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8 CHECK_DTBS=y  fsl-ls1088a-qds.dtb

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8 CHECK_DTBS=y  fsl-ls1088a-qds.dtb
  SCHEMA  Documentation/devicetree/bindings/processed-schema.json
  DTC [C] arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dtb
arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dtb: syscon@1f70000: interrupt-controller@14:interrupt-map: [[0, 0, 1, 0, 0, 4, 1, 0], [1, 0, 1, 4, 2, 0, 1, 0], [2, 4, 3, 0, 1, 0, 3, 4], [4, 0, 1, 0, 4, 4, 5, 0], [1, 0, 5, 4, 6, 0, 1, 0], [6, 4, 7, 0, 1, 0, 7, 4], [8, 0, 1, 0, 8, 4, 9, 0], [1, 0, 9, 4, 10, 0, 1, 0], [10, 4, 11, 0, 1, 0, 11, 4]] is too short
	from schema $id: http://devicetree.org/schemas/soc/fsl/fsl,layerscape-scfg.yaml#
arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dtb: interrupt-controller@14: interrupt-map: [[0, 0, 1, 0, 0, 4, 1, 0], [1, 0, 1, 4, 2, 0, 1, 0], [2, 4, 3, 0, 1, 0, 3, 4], [4, 0, 1, 0, 4, 4, 5, 0], [1, 0, 5, 4, 6, 0, 1, 0], [6, 4, 7, 0, 1, 0, 7, 4], [8, 0, 1, 0, 8, 4, 9, 0], [1, 0, 9, 4, 10, 0, 1, 0], [10, 4, 11, 0, 1, 0, 11, 4]] is too short
	from schema $id: http://devicetree.org/schemas/interrupt-controller/fsl,ls-extirq.yaml#
arch/arm64/boot/dts/freescale/fsl-ls1088a-qds.dtb: fsl-mc@80c000000: msi-parent:0: [16, 0] is too long
	from schema $id: http://devicetree.org/schemas/misc/fsl,qoriq-mc.yaml#

Frank

>
> Best regards,
> Krzysztof
>




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux