• Paul Burton's avatar
    PCI: xilinx-nwl: Translate INTx range to hwirqs 0-3 · b8550f11
    Paul Burton authored
    The devicetree binding documentation for the Xilinx NWL PCIe root port
    bridge shows an example which uses an interrupt-map property to map PCI
    INTx interrupts to hardware IRQ numbers 1-4. The driver creates an IRQ
    domain with size 4, which therefore covers the hwirq range 0-3.
    
    This means that if we attempt to make use of the INTD interrupt then we're
    likely to hit a WARN() in irq_domain_associate() because INTD, or hwirw=4,
    is outside of the range covered by the IRQ domain.  irq_domain_associate()
    will then return -EINVAL and we'll be unable to make use of INTD.
    
    Fix this by making use of the pci_irqd_intx_xlate() helper function to
    translate the 1-4 range used in the DT to a 0-3 range used within the
    driver, and stop adding 1 to decoded hwirq numbers.
    
    Whilst cleaning up INTx handling we make use of the new PCI_NUM_INTX macro
    & drop the custom INTX definitions.
    Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Cc: "Sören Brinkmann" <soren.brinkmann@xilinx.com>
    b8550f11
pcie-xilinx-nwl.c 24.4 KB