[PATCH 01/11] dt-bindings: iommu: arm,smmu-v3: make PRI IRQ optional

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Thu Apr 28 02:25:42 PDT 2022


On 28/04/2022 11:23, Robin Murphy wrote:
> On 2022-04-28 07:56, Krzysztof Kozlowski wrote:
>> On 27/04/2022 13:25, Andre Przywara wrote:
>>> The Page Request Interface (PRI) is an optional PCIe feature. As such, a
>>> SMMU would not need to handle it if the PCIe host bridge or the SMMU
>>> itself do not implement it. Also an SMMU could be connected to a platform
>>> device, without any PRI functionality whatsoever.
>>> In all cases there would be no SMMU PRI queue interrupt to be wired up
>>> to an interrupt controller.
>>>
>>> Relax the binding to allow specifying three interrupts, omitting the PRI
>>> IRQ. At the moment, with the "eventq,gerror,priq,cmdq-sync" order, we
>>> would need to sacrifice the command queue sync interrupt as well, which
>>> might not be desired.
>>> The Linux driver does not care about any order at all, just picks IRQs
>>> based on their names, and treats all (wired) IRQs as optional.
>>
>> The last sentence is not a good explanation for the bindings. They are
>> not about Linux and are used in other projects as well.
>>
>>>
>>> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
>>> ---
>>>   .../bindings/iommu/arm,smmu-v3.yaml           | 21 ++++++++++++++-----
>>>   1 file changed, 16 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
>>> index e87bfbcc69135..6b3111f1f06ce 100644
>>> --- a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
>>> +++ b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
>>> @@ -37,12 +37,23 @@ properties:
>>>             hardware supports just a single, combined interrupt line.
>>>             If provided, then the combined interrupt will be used in preference to
>>>             any others.
>>> -      - minItems: 2
>>> +      - minItems: 1
>>>           items:
>>> -          - const: eventq     # Event Queue not empty
>>> -          - const: gerror     # Global Error activated
>>> -          - const: priq       # PRI Queue not empty
>>> -          - const: cmdq-sync  # CMD_SYNC complete
>>> +          - enum:
>>> +              - eventq     # Event Queue not empty
>>> +              - gerror     # Global Error activated
>>> +              - cmdq-sync  # CMD_SYNC complete
>>> +              - priq       # PRI Queue not empty
>>> +          - enum:
>>> +              - gerror
>>> +              - cmdq-sync
>>> +              - priq
>>> +          - enum:
>>> +              - cmdq-sync
>>> +              - priq
>>> +          - enum:
>>> +              - cmdq-sync
>>> +              - priq
>>
>> The order should be strict, so if you want the first interrupt optional,
>> then:
>> oneOf:
>>   - items:
>>      ... 4 items list
>>   - items
>>      ... 3 items list
> 
> All 4 interrupts are optional, though, since any of them could 
> potentially use an MSI instead. Do we really want to list out all 15 
> combinations?

Bah, I missed that part from commit msg. It's fine then.


Best regards,
Krzysztof



More information about the linux-arm-kernel mailing list