PCIe and MSI interrupts with 4.x Kernels

We have designed a board that is based on the Cyclone V development board where we have mated a Stratix to the Cyclone via pcie.
Everything works well with Linux 3.15 but there are features in the newer kernels, 4.7 that we’d like to have, unfortunately we have been unable to get the pcie-msi interrupts to work under 4.7.
For 3.15 …

cat /proc/interrupts

       CPU0       CPU1       

29: 79292026 43286214 GIC 29 twd
72: 0 0 GIC 72 c0000000.pcie
74: 36768799 0 GIC 74 altera-pci-msi
152: 1096469 0 GIC 152 eth0
171: 103 0 GIC 171 dw-mci
183: 0 0 GIC 183 ff705000.spi
194: 32 0 GIC 194 serial
199: 0 0 GIC 199 timer0
207: 0 0 GIC 207 fpga-mgr
256: 36768799 0 altera-pci-msi 0 DMAD0
IPI0: 0 0 CPU wakeup interrupts
IPI1: 0 0 Timer broadcast interrupts
IPI2: 2218 36916269 Rescheduling interrupts
IPI3: 0 0 Function call interrupts
IPI4: 1 3 Single function call interrupts
IPI5: 0 0 CPU stop interrupts
IPI6: 143 2112 IRQ work interrupts
IPI7: 0 0 completion interrupts
Err: 0

For 4.7 …

cat /proc/interrupts

       CPU0       CPU1       

16: 0 0 GIC-0 199 Level timer
17: 273387 270303 GIC-0 29 Edge twd
22: 0 0 GIC-0 136 Level ffe01000.dma
23: 0 0 GIC-0 207 Level ff706000.fpgamgr
24: 708 0 GIC-0 194 Level serial
32: 0 0 GIC-0 190 Level ffc04000.i2c
33: 0 0 GIC-0 183 Level ff705000.flash
34: 2792 0 GIC-0 171 Level dw-mci
35: 8525 0 GIC-0 152 Level eth0
156: 0 0 Altera PCIe MSI 0 Edge PCIe PME
157: 0 0 Altera PCIe MSI 524288 Edge DMAD0
IPI0: 0 0 CPU wakeup interrupts
IPI1: 0 0 Timer broadcast interrupts
IPI2: 348 2588 Rescheduling interrupts
IPI3: 1 3 Function call interrupts
IPI4: 0 0 CPU stop interrupts
IPI5: 0 0 IRQ work interrupts
IPI6: 0 0 completion interrupts
Err: 0

Does this suggest that the MSI interrupts aren’t connecting to the GIC?

I’ve also tried the latest code from repository which is 4.9.0-rc3. Using the same dtb as with the 4.7 kernel, the board boots but the Stratic pcie bus has disappeared completely.
I’d appreciate any insights.

Just to be clear. The kernel that is working for us is 3.15 with patches from https://rocketboards.org/foswiki/view/Projects/PCIeRootPortWithMSI applied.

None of the kernels we make from https://github.com/altera-opensource/linux-socfpga seem to handle MSI interrupts.

Further updates:
A patch from Ley Foon Tan fixed the issue with the PCIe bus not detecting an end point in kernels > 4.9.
The lack of interrupts was found to be a problem with our dma driver code, so I can confirm that MSI interrupts are working for 4.x kernels. Sorry for the noise.