irqchip/gic-v2m: Add workaround for APM X-Gene GICv2m erratum
authorDuc Dang <dhdang@apm.com>
Tue, 6 Oct 2015 22:32:38 +0000 (15:32 -0700)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 9 Oct 2015 21:16:58 +0000 (22:16 +0100)
commitee5f7d6462c56ba083d5d80aa0d69914068a59ae
treed9c03c9b09537ee96b35e43bcf51e53e33d157e2
parent6d32ab2d8a982ffd46c4dcad9739292f57bc26de
irqchip/gic-v2m: Add workaround for APM X-Gene GICv2m erratum

APM X-Gene GICv2m implementation has an erratum where the
MSI data needs to be the offset from the spi_start in order to
trigger the correct MSI interrupt. This is different from the
standard GICv2m implementation where the MSI data is the absolute
value within the range from spi_start to (spi_start + num_spis)
of each v2m frame.

This patch reads MSI_IIDR register (present in all GICv2m
implementations) to identify X-Gene GICv2m implementation and
apply workaround to change the data portion of MSI vector.

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Duc Dang <dhdang@apm.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-gic-v2m.c