Re: [PATCH 1/2] dt-bindings: mailbox : arm,mhuv2: Allow for more RX interrupts

From: Rob Herring
Date: Wed Apr 12 2023 - 09:20:47 EST


On Thu, Mar 30, 2023 at 09:29:23AM +0100, Cristian Marussi wrote:
> On Wed, Mar 29, 2023 at 06:44:31PM +0100, Sudeep Holla wrote:
> > On Wed, Mar 29, 2023 at 04:39:35PM +0100, Cristian Marussi wrote:
> > > The ARM MHUv2 Receiver block can indeed support more interrupts, up to the
> > > maximum number of available channels, but anyway no more than the maximum
> > > number of supported interrupt for an AMBA device.
> > >
> > > Signed-off-by: Cristian Marussi <cristian.marussi@xxxxxxx>
> > > ---
> > > Cc: Rob Herring <robh+dt@xxxxxxxxxx>
> > > Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx>
> > > Cc: devicetree@xxxxxxxxxxxxxxx
> > >
> > > .../devicetree/bindings/mailbox/arm,mhuv2.yaml | 13 +++++++++----
> > > 1 file changed, 9 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml b/Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
> > > index a4f1fe63659a..5a57f4e2a623 100644
> > > --- a/Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
> > > +++ b/Documentation/devicetree/bindings/mailbox/arm,mhuv2.yaml
> > > @@ -69,10 +69,15 @@ properties:
> > >
> > > interrupts:
> > > description: |
> > > - The MHUv2 controller always implements an interrupt in the "receiver"
> > > - mode, while the interrupt in the "sender" mode was not available in the
> > > - version MHUv2.0, but the later versions do have it.
> > > - maxItems: 1
> > > + The MHUv2 controller always implements at least an interrupt in the
> > > + "receiver" mode, while the interrupt in the "sender" mode was not
> > > + available in the version MHUv2.0, but the later versions do have it.
> > > + In "receiver" mode, beside a single combined interrupt, there could be
> > > + multiple interrupts, up to the number of implemented channels but anyway
> > > + no more than the maximum number of interrupts potentially supported by
> > > + AMBA.
> > > + minItems: 1
> > > + maxItems: 9
> >
>
> Hi,
>
> > I am not sure 9 is the correct value here. IIUC it is just what Linux defines
> > as AMBA_NR_IRQS. Looking at the history it was bumped from 2 to 9 for use
> > by PL330 DMA driver. I couldn't find anything to relate this 9 in any
> > AMBA or other related specification.
> >
>
> Yes, I could not find either where the 9 comes from, but it is what
> currently each amba device is limited to, at the software level, in terms of
> interrupts that can be detected.

IIRC, the PL330 can have an interrupt per context with up to 8 contexts
and then 1 global interrupt.

>
> > Ideally I would say we don't know what the max here. We just have a platform
> > implementing 2 interrupts now. Do we for with 2 for now and change it if some
> > new users require more in the future ?
> >
>
> By the spec seems to me that the maximum number of interrupts are equal to
> the maximum possible channels (124), or one combined interrupt.
>
> But these in turn, as said, are capped by the AMBA_NR_IRQS and I have
> only seen one system using 2. (for which I need this series to work)
>
> > I will leave that to the DT maintainers but 9 is simply random based on Linux
> > code so I would rather choose some other random number with a better reasoning
> > than 9 as AMBA code in the kernel is limiting it to 9.
> >
>
> Agreed. Aiming to describe any possible hw in the DT, I would say 124 at
> this point. (even though implausible not to use the combined interrupt
> at that point...)

Then use 124, but please describe how you get that in the description.

Rob