add IRQS_PENDING for nested, simple and level handler to early abortsuspend operation

From: Ning Jiang
Date: Fri May 18 2012 - 00:55:35 EST


During suspend check_wakeup_irqs() will check IRQS_PENDING flag to
abort a suspend operation, however, this only applies for edge
triggered irq. Add IRQS_PENDING for nested, simple and level handler
to mimic the same behaviour as edge irq handler.

Without this optimization, level irq can be handled correctly but there
is some penalty. It has to go through a full run/suspend power cycle for level
irq to be detected and handled. With it, we can abort the suspend operation
earlier and thus shorten the interrupt latency.

I know this is ugly as IRQS_PENDING is intended for edge irq but I don't
know how to do it in a right way. Please enlighten me if you have better ideas.

Ning

Attachment: 0001-genirq-add-IRQS_PENDING-for-nested-simple-and-level-.patch
Description: Binary data