Hi,
I'm currently writing a dde_linux driver that requires to wait for an interrupt to be handled. It basically initializes the hardware and then waits for an event to occur. This event is usually triggered by the interrupt (respectively its handler) which occurs after hardware initialization. My problem is that this interrupt doesn't appear while the function triggering it didn't return. So when this function blocks to wait for the interrupt, a deadlock is created. Besides using the timer I tried to block the execution with a semaphore creating the same problem. Creating an async version is no option due to the architecture of the Linux driver.
How are interrupts handled in this case? What causes them to block and how can I work around this?
Regards,
JK