irqchip/gic-v3-its: Fix 64bit GIC{R,ITS}_TYPER accesses
authorMarc Zyngier <marc.zyngier@arm.com>
Fri, 14 Oct 2016 14:13:07 +0000 (15:13 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Mon, 17 Oct 2016 10:59:30 +0000 (11:59 +0100)
commit589ce5f447b8610df0dbd6935b56d5cda17b9cec
tree16ccd5619168aa7f2e67139badec48e9e23d5e69
parent1001354ca34179f3db924eb66672442a173147dc
irqchip/gic-v3-its: Fix 64bit GIC{R,ITS}_TYPER accesses

The GICv3 architecture specification mentions that a 64bit
register can be accessed using two 32bit accesses. What it
doesn't mention is that this is only guaranteed on a system
that implements AArch32, and a pure AArch64 system is allowed
not to support this. This causes issues with the GICR_TYPER
and GITS_TYPER registers, which are both RO 64bit registers.

In order to solve this, this patch switches the TYPER accesses
to the gic_read_typer macro already used in other parts of the
driver. This makes sure that we always use a 64bit access on
64bit systems, and two 32bit accesses on 32bit system.

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