irqchip/gic-v3-its: Macro-ize its_send_single_command
authorMarc Zyngier <marc.zyngier@arm.com>
Mon, 19 Dec 2016 17:56:32 +0000 (17:56 +0000)
committerMarc Zyngier <marc.zyngier@arm.com>
Wed, 23 Aug 2017 10:09:16 +0000 (11:09 +0100)
commite4f9094b54882fa404cfd33609fc5c62b0964082
tree281fe8695c9c47b8fa2189ab59ed31bff5de85ad
parent3dfa576bfb453482314b596931a59a4951428058
irqchip/gic-v3-its: Macro-ize its_send_single_command

Most ITS commands do operate on a collection object, and require
a SYNC command to be performed on that collection in order to
guarantee the execution of the first command.

With GICv4 ITS, another set of commands perform similar operations
on a VPE object, and a VSYNC operations must be executed to guarantee
their execution.

Given the similarities (post a command, perform a synchronization
operation on a sync object), it makes sense to reuse the same
mechanism for both class of commands.

Let's start with turning its_send_single_command into a huge macro
that performs the bulk of the work, and a set of helpers that
make this macro usable for the GICv3 ITS commands.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v3-its.c