Interrupts never trigger ISR

My gut says you should be setting your INF to use MSI interrupts and are not doing so. Are you using MSI on Linux? There’s no reason to be using legacy interrupts with XDMA and it would not surprise me if it’s buggy on the Xilinx side. See this link for the INF setup:

Also see the setup code that @Peter_Viscarola_OSR posted for me a while back in this post:

EDIT:

Just reread your post and notice you are doing this in DeviceAdd? That is not the correct place. You need to do it in the EvtDevicePrepareHardware callback when the OS gives you information about the interrupt. You can’t simply add an interrupt and not tie it to an actual interrupt. I will see if I can dig up some sharable code tomorrow.