From mboxrd@z Thu Jan 1 00:00:00 1970 From: mark.rutland@arm.com (Mark Rutland) Date: Wed, 3 Feb 2016 18:20:54 +0000 Subject: [PATCH] dt-bindings: arm, gic-v3: require that reserved cells are always 0 In-Reply-To: <1454522458-29643-1-git-send-email-will.deacon@arm.com> References: <1454522458-29643-1-git-send-email-will.deacon@arm.com> Message-ID: <20160203182054.GH1234@leverpostej> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, Feb 03, 2016 at 06:00:58PM +0000, Will Deacon wrote: > The arm,gic-v3 binding was written with good intentions and doesn't > enforce interrupt-cells to be 3, therefore making it easy to extend > the irq description in future if necessary: > > > Cells 4 and beyond are reserved for future use. > > Unfortunately, this sentence is immediately followed up with: > > > When the 1st cell has a value of 0 or 1, cells 4 and beyond act as > > padding, and may be ignored. It is recommended that padding cells > > have a value of 0. The initial intention of this was to allow for new, longer entries which were identified by a new value in cell 1. Regardless, I agree that it should be a requirement that padding cells must be zero. > Consequently, any extensions to the PPI or SPI interrupt specifiers must > be able to work with random crap from legacy DTs, effectively > necessitating a new interrupt type in the first cell. Sigh. I'm not sure that's true if we allocate a new value for the 1st cell for "extended" PPI or SPI interrupt-sepcficiers (which presumably add restrictions). That would also allow old kernels to safely skip such interrupts rather than mis-parsing them. > This patch fixes the text so that additional, reserved cells are > required to be zero. This looks like a reasonable thing to require and > is already satisifed by the .dts files in-tree. > > Cc: Mark Rutland > Cc: Marc Zyngier > Signed-off-by: Will Deacon This patch itself makes sense, so FWIW: Acked-by: Mark Rutland Any proposed extention to the binding requires its own discussion. Thanks, Mark. > --- > .../devicetree/bindings/interrupt-controller/arm,gic-v3.txt | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt > index 7803e77d85cb..007a5b46256a 100644 > --- a/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt > +++ b/Documentation/devicetree/bindings/interrupt-controller/arm,gic-v3.txt > @@ -24,9 +24,8 @@ Main node required properties: > 1 = edge triggered > 4 = level triggered > > - Cells 4 and beyond are reserved for future use. When the 1st cell > - has a value of 0 or 1, cells 4 and beyond act as padding, and may be > - ignored. It is recommended that padding cells have a value of 0. > + Cells 4 and beyond are reserved for future use and must have a value > + of 0 if present. > > - reg : Specifies base physical address(s) and size of the GIC > registers, in the following order: > -- > 2.1.4 >