The interrupt pin cell in "interrupt-map" property is defined only for legacy interrupts with a valid range in [1-4] corrspoding to INTA#..INTD#. And the PCI endpoint devices that support advance interrupt mechanism like MSI or MSI-X should not have an entry with value 0 in "interrupt-map". This patch takes care of this problem by avoiding redundant entries. Signed-off-by: Sathyam Panda <sathyam.panda@xxxxxxx> Reviewed-by: Vivek Kumar Gautam <vivek.gautam@xxxxxxx> --- arm/pci.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arm/pci.c b/arm/pci.c index 2251f62..e44e453 100644 --- a/arm/pci.c +++ b/arm/pci.c @@ -80,6 +80,16 @@ void pci__generate_fdt_nodes(void *fdt) u8 irq = pci_hdr->irq_line; u32 irq_flags = pci_hdr->irq_type; + /* + * Avoid adding entries in "interrupt-map" for devices that + * will be using advance interrupt mechanisms like MSI or + * MSI-X instead of legacy interrupt pins INTA#..INTD# + */ + if (pin == 0) { + dev_hdr = device__next_dev(dev_hdr); + continue; + } + *entry = (struct of_interrupt_map_entry) { .pci_irq_mask = { .pci_addr = { -- 2.25.1