Re: [PATCH 6/7] arm64: tegra: Add DT node for T194 SMMU

From: Robin Murphy
Date: Fri Aug 30 2019 - 13:45:44 EST


On 30/08/2019 18:25, Krishna Reddy wrote:
+ #global-interrupts = <1>;

Shouldn't that be 3?

Interrupt line is shared between global and all context faults for each SMMU instance.
Nvidia implementation checks for both Global and context faults on each interrupt to an SMMU instance.
It can be either 1 or 3. If we make it 3, we need to add two more irq entries in node for context faults.

The number of global interrupts has never been related to the number of context interrupts :/

In the future, we can update arm-smmu.c to support shared interrupt line between global and all context faults.

Clearly you have one combined interrupt output per SMMU - describing those as one global interrupt and the first two context bank interrupts respectively makes far less sense than calling them 3 global interrupts, not least because the latter is strictly true. Yes, the binding prevents us from describing the context bank interrupts for more than one instance, but at that point the fact that it *is* the combined output saves us - because the driver is aware of this specific integration it knows it can just register the "secondary" global interrupts as "secondary" context interrupts too. If we had separate IRQ lines per context bank per instance, then we'd have a really big problem and might have to redefine the binding, but as it is it happens to work out pretty neatly.

Robin.