irqchip/brcmstb-l2: Remove some processing from the handler
authorDoug Berger <opendmb@gmail.com>
Tue, 19 Sep 2017 00:59:58 +0000 (17:59 -0700)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 19 Oct 2017 09:56:24 +0000 (10:56 +0100)
commit49aa6ef0b43912ead9cc5525dca182534d1d6676
tree72abfc9052fe7b92628ed8c48c7a005fc3732827
parent42a5968c0ae8f19906e16fa34ea9bdb6f5095166
irqchip/brcmstb-l2: Remove some processing from the handler

Saving the generic chip pointer in the brcmstb_l2_intc_data prevents
the need to call irq_get_domain_generic_chip().  Also don't need to
save parent_irq and base there since local variables in the
brcmstb_l2_intc_of_init() function are just as good.

The handle_edge_irq flow or chained_irq_enter takes care of the
acknowledgment of the interrupt so it is redundant to clear it in
brcmstb_l2_intc_irq_handle().

irq_linear_revmap() is a fast path equivalent of irq_find_mapping()
that is appropriate to use for domain controllers of this type.

Defining irq_mask_ack is slightly more efficient than just
implementing irq_mask and irq_ack separately.

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Doug Berger <opendmb@gmail.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-brcmstb-l2.c