Xavier not routing PCI interrupts across PEX8112 bridge

This gives the same result.

This code that you wanted to modify is architecture-independent linux. It works fine on PCs, Jetson-TK, and
Jetson-TX.

The code with the bug in it is going to be something that Nvidia wrote for Xaver specifically, and not for TX or TK.

Did you already try with this and got the same result or you are saying it without trying it?
We have integrated latest DesignWare code from Kernel-4.14 to Kernel-4.9 and as part of that looks like there are some things outside of DesignWare code missed out in the integration.
Just to give some background about how the interrupt number gets updated in the configuration space,
in TX1/TX2, it is done through the call
pci_fixup_irqs(pci_common_swizzle, tegra_pcie_map_irq);
but, in DesignWare core, ‘pci_common_swizzle’ and ‘of_irq_parse_and_map_pci’ are registered with the host bridge hooks and they are used in pci_assign_irq() API in setup-irq.c file.
In Kernel-4.14, pci_assign_irq() is called explicitly in pci_device_probe() API in pci-driver.c file whereas the same thing got missed out during integration. Hence, I asked you to add that and check.

Did you already try with this and got the same result or you are saying it without trying it?

Yes, we did try and it did not work!

Hence, I asked you to add that and check.
We did add it and checked it and it did not work.

We understand your explanation, but we still need a solution to our problem.
Could you please provide us a new software release with the issue fixed.

Please try with the following patch

diff --git a/drivers/pci/dwc/pcie-designware-host.c b/drivers/pci/dwc/pcie-designware-host.c
index ec2e4a61aa4e..a72ba177a5fd 100644
--- a/drivers/pci/dwc/pcie-designware-host.c
+++ b/drivers/pci/dwc/pcie-designware-host.c
@@ -477,6 +477,8 @@ int dw_pcie_host_init(struct pcie_port *pp)
        if (pp->ops->scan_bus)
                pp->ops->scan_bus(pp);
 
+       pci_fixup_irqs(pci_common_swizzle, of_irq_parse_and_map_pci);
+
        pci_bus_size_bridges(bus);
        pci_bus_assign_resources(bus);

This needs to be applied in $TOP/kernel/kernel-4.9/ folder.

That worked!