Re: [PATCH v3 02/10] of/irq: Allow matching of an interrupt-map local to an interrupt controller

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

 



On Mon, Sep 13, 2021 at 1:26 PM Marc Zyngier <maz@xxxxxxxxxx> wrote:
>
> of_irq_parse_raw() has a baked assumption that if a node has an
> interrupt-controller property, it cannot possibly also have an
> interrupt-map property (the latter being ignored).
>
> This seems to be an odd behaviour, and there are no reason why

s/are/is/

> we should avoid supporting this use case. This is specially
> useful when a PCI root port acts as an interrupt controller for
> PCI endpoints, such as this:
>
> pcie0: pcie@690000000 {
>         [...]
>         port00: pci@0,0 {
>                 device_type = "pci";
>                 [...]
>                 #address-cells = <3>;
>
>                 interrupt-controller;
>                 #interrupt-cells = <1>;
>
>                 interrupt-map-mask = <0 0 0 7>;
>                 interrupt-map = <0 0 0 1 &port00 0 0 0 0>,
>                                 <0 0 0 2 &port00 0 0 0 1>,
>                                 <0 0 0 3 &port00 0 0 0 2>,
>                                 <0 0 0 4 &port00 0 0 0 3>;
>         };
> };
>
> Handle it by detecting that we have an interrupt-map early in the
> parsing, and special case the situation where the phandle in the
> interrupt map refers to the current node (which is the interesting
> case here).
>
> Signed-off-by: Marc Zyngier <maz@xxxxxxxxxx>
> ---
>  drivers/of/irq.c | 17 ++++++++++++-----
>  1 file changed, 12 insertions(+), 5 deletions(-)

Reviewed-by: Rob Herring <robh@xxxxxxxxxx>



[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