Basically, with the hardware you described, wiring - or for interrupts, will NEVER work correctly on it.
If you want to connect to a wired system, you really need to use level-sensitive IRQ inputs. If this is not possible, perhaps you can add interrupts to some controller. This device will receive N level-sensitive input and have one output as well as some βclearβ output. When the interrupt controller is clean, it will lower its output, and then re-approve the output if any of its inputs were still validated.
On the software side, you can see if the IRQ string works on a different processor input. This will allow you to at least check the status, but the basic ISR processing for Linux is not going to know anything about it, and so you have to pay something to check it and run it again through the ISR. In addition, this means that in difficult interrupt loading situations you are NEVER going to get out of this ISR. Given that you are making a wire or in IRQ, I seem to assume that these devices will not interrupt too often.
One more thing - itβs very hard to look at the processor. There might be some trick you can pull with setting the interrupt to recognize the interrupt again.
I would not try anything too complicated, I would either separate the sources into separate IRQ inputs, switch to a level-sensitive input signal, or add an interrupt controller chip.
source share