Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit d3b594b9 authored by Saravana Kannan's avatar Saravana Kannan
Browse files

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: default avatarSaravana Kannan <skannan@codeaurora.org>
Change-Id: Ica07f496ee56e67ab8a357e612ff425418869d60
parent e83b06b0
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment