ARM: dts: msm: Change BIMC BWMON interrupts to level triggered
Since the BIMC BWMON IRQ is a shared interrupt across the ports, it needs
to be treated as a level triggered IRQ to avoid races.
Otherwise, the following race can happen:
* IRQ arrives
* Port 0 checks if it caused the IRQ.
* Decides it did not and doesn't do anything.
* Port 1 checks if it caused the IRQ.
* Decides it did cause it and is processing it.
* Port 0 now triggers the IRQ.
* Port 1 handler clear its IRQ source.
* IRQ line remains high throughout this period.
* All IRQ handlers are done processing the rising edge triggered IRQ and
no more work is done.
If this is instead handled as a level triggered IRQ, then the handlers will
be called again and the Port 0 handler would process its IRQ and then clear
its IRQ source and the IRQ line would go low.
Signed-off-by:
Saravana Kannan <skannan@codeaurora.org>
Change-Id: Ica07f496ee56e67ab8a357e612ff425418869d60
Loading
Please register or sign in to comment